mirror of https://github.com/interlegis/sapl.git
1 changed files with 0 additions and 135 deletions
@ -1,135 +0,0 @@ |
|||
# Instruções para Importação da base mysql 2.5 |
|||
|
|||
O processo de migração do SAPL 2.5 para SAPL 3.1 é dividido em 4* sub tarefas: |
|||
|
|||
*_É extremamente recomendável que durante o processo de migração o banco de dados do SAPL 2.5 (produção) esteja em modo 'read-only'_ |
|||
|
|||
|
|||
* Alterar banco de dados 2.5 (produção) para read-only [(link para solução)](https://support.scalearc.com/kb/articles/how-to-set-a-mysql-database-to-read-only-mode). |
|||
|
|||
* Migração da base de Dados; |
|||
* Migração de Documentos; |
|||
* Migração de usuários; |
|||
|
|||
A imagem abaixo detalha o fluxo de tarefas a ser seguida na migração do SAPL. |
|||
[[/images/processo_migracao_sapl.png|Processo de Migração SAPL 2.5 para SAPL 3.1]] |
|||
|
|||
[Imagem Expandida](https://raw.githubusercontent.com/wiki/interlegis/sapl/images/processo_migracao_sapl.png) |
|||
|
|||
## Migração de Dados do sapl 2.5 |
|||
|
|||
* Gerar dump da base de dados sapl 2.5 mysql. |
|||
* Restaurar Base de dados Localmente (em uma máquina diferente da máquina de produção) |
|||
* iniciar migração de dados |
|||
* Gerar dump da base de dados migrada sapl 3.1 postgres. |
|||
|
|||
Para entrar no ambiente virtual:: |
|||
``` |
|||
workon sapl |
|||
``` |
|||
|
|||
Instalar Dependências:: |
|||
``` |
|||
pip3 install -r requirements/migration-requirements.txt |
|||
``` |
|||
Criar um arquivo /var/interlegis/sapl/sapl/legacy/.env |
|||
``` |
|||
nano /var/interlegis/sapl/sapl/legacy/.env |
|||
``` |
|||
com o seguinte conteúdo (parametros de acesso ao banco 2.5): |
|||
``` |
|||
DATABASE_URL_FONTE = mysql://[usuario do mysql]:[senha do myuysql]@[host]:[porta]/[banco] |
|||
``` |
|||
o conteúdo do arquivo será semelhante a isso:: |
|||
``` |
|||
DATABASE_URL_FONTE = mysql://sapl:sapl@localhost:3306/interlegis |
|||
``` |
|||
Posteriormente rodar a seguinte sequencia de comandos estando no ambiente virtual:: |
|||
``` |
|||
./manage.py shell --settings=sapl.legacy_migration_settings |
|||
In [1]: from sapl.legacy.migracao import migrar_dados |
|||
In [2]: migrar_dados() |
|||
``` |
|||
## Migração de documentos do sapl 2.5 |
|||
No sapl 2.5 todos os documentos ficavam armazenados no ZODB (o banco do Zope). |
|||
No sapl 3.1 eles ficam no sistema de arquivos convencional e portanto precisam: |
|||
|
|||
1. ser exportados para o sistema de arquivos |
|||
2. ser vinculados ao novo banco importado para o sapl 3.1 |
|||
|
|||
|
|||
### Exportar os documentos para o sistema de arquivos |
|||
|
|||
Exite um subprojeto no repositório do sapl na pasta Instale o projeto versionado em `sapl/legacy/scripts/exporta_zope`. Ele deve ser instalado em virtualenv separado com python 2.7 |
|||
Siga os seguintes passos: |
|||
|
|||
1. Crie um _virtualenv_ com python 2.7 |
|||
2. Instale nesse _virtualenv_ as dependências em `sapl/legacy/scripts/exporta_zope/requirements.txt` |
|||
3. Coloque uma cópia do arquivo Data.fs (o arquivo de dados do zope) em uma pasta local. Não realize esse procedimento contra o arquivo em produção. Uma forma de obter uma cópia desse arquivo é fazer um pack no zope e copiar o arquivo Data.fs.old criado. |
|||
4. Limpe a pasta `media` de sua instalação do sapl. Se necessário faça um backup de seu conteúdo. A forma padrão deste procedimento extrai os arquivos do Data.fs nesta pasta. |
|||
5. Com o _virtualenv_ ativado e na pasta `sapl/legacy/scripts/exporta_zope` rode a exportação usando a função `exporta_zope.dump_sapl` com o caminho do `Data.fs` como parâmetro. A forma mais simples de fazer isso é rodar o script `exporta_zope` com o caminho do `Data.fs` como argumento. Por exemplo: |
|||
``` |
|||
> ./exporta_zope.py caminho/para/Data.fs.old |
|||
``` |
|||
Isso criará, na pasta `media` de sua instalação: |
|||
* um arquivo `usuarios.yaml` com todos os usuários do zope, seus perfis e hashes de suas senhas; |
|||
* uma pasta `sapl_documentos` com todo conteúdo extraído dessa pasta do zope; |
|||
* uma pasta `XSLT` com todo conteúdo extraído dessa pasta do zope; |
|||
|
|||
### Vincular os documentos ao novo banco do sapl 3.1 |
|||
|
|||
1. Primeiramente migre o banco do sapl 2.5 para o sapl 3.1 |
|||
2. Conserve o conteúdo da pasta `media` criado pela extração anterior |
|||
3. De forma semelhante ao realizado na migração do banco, dentro no mesmo ambiente virtual, rode os seguintes comandos:: |
|||
``` |
|||
./manage.py shell --settings=sapl.legacy_migration_settings |
|||
In [1]: from sapl.legacy.migracao import migrar_documentos, migrar_usuarios |
|||
In [2]: migrar_usuarios() |
|||
...: migrar_documentos() |
|||
``` |
|||
Isto irá fazer as seguintes atualizações no banco do sapl 3.1: |
|||
|
|||
* criará os usuários presentes no arquivo `media/usuarios.yaml` (ou atualizar os existentes) com seus perfis e senhas e apagará o arquivo; |
|||
* vinculará os documentos presentes na pasta `media/sapl_documentos` a seus registros (migrados anteriormente do sapl 2.5) e os moverá para os locais corretos dentro de `media/sapl`. Como os arquivos são movidos (e não copiados) este procedimento só pode ser realizado uma vez. Guarde um backup da pasta `media/sapl_documentos` extraída ou repita a extração do zope, se precisar repetir esse passo. |
|||
|
|||
Após esse procedimento restarão na pasta `media/sapl_documentos` os documentos sem registro correspondente e, portanto, não migrados. Eles pertenciam a registros que foram excluídos no sapl 2.5. Guarde o conteúdo restante da pasta `media/sapl_documentos` **fora de sua instalação** para efeito histórico ou descarte se preferir reter apenas o Data.fs. |
|||
|
|||
Sugerimos que sempre retenha seus dados originais (Data.fs, dump do mysql). |
|||
|
|||
### Para indexar os arquivos para pesquisa textual |
|||
``` |
|||
workon sapl |
|||
./manage.py rebuild_index |
|||
``` |
|||
|
|||
|
|||
Dependendo da quantidade de arquivos a serem indexados, pode ser listado o seguinte erro 'Too many open files' |
|||
|
|||
Isto está ligado a quantidade máxima de aquivos que podem ser abertos ao mesmo tempo pelo sistema operacional |
|||
|
|||
Para aumentar este limite:: |
|||
``` |
|||
sudo nano /etc/security/limits.conf |
|||
``` |
|||
Adicione a linhas seguintes no arquivo: |
|||
``` |
|||
* soft nofile 9000 |
|||
* hard nofile 65000 |
|||
``` |
|||
|
|||
``` |
|||
sudo nano /etc/pam.d/common-session |
|||
``` |
|||
Adicione a linha seguinte no arquivo: |
|||
``` |
|||
session required pam_limits.so |
|||
``` |
|||
Após reiniciar, verificar se foram carregados os novos parâmetros com o comando:: |
|||
``` |
|||
ulimit -a |
|||
``` |
|||
|
|||
deve ser apresentado o seguinte:: |
|||
``` |
|||
open files (-n) 9000 |
|||
``` |
|||
Loading…
Reference in new issue