From bad6f8a3a9847af53a977ca7f4c12c7119ab735a Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Thu, 4 Apr 2019 22:33:33 +0200 Subject: [PATCH] =?UTF-8?q?Destroyed=20Migra=C3=A7=C3=A3o=20sapl=202.5=20p?= =?UTF-8?q?ara=203.1=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Migração-sapl-2.5-para-3.1.md | 135 -------------------------------- 1 file changed, 135 deletions(-) delete mode 100644 Migração-sapl-2.5-para-3.1.md diff --git a/Migração-sapl-2.5-para-3.1.md b/Migração-sapl-2.5-para-3.1.md deleted file mode 100644 index ddfa723..0000000 --- a/Migração-sapl-2.5-para-3.1.md +++ /dev/null @@ -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 -```