Atauliza nova forma de exportação de documentos do zope

master
Marcio Mazza 8 years ago
parent
commit
9a9676e9bb
  1. 56
      Migração-sapl-2.5-para-3.1.md

56
Migração-sapl-2.5-para-3.1.md

@ -47,8 +47,8 @@ DATABASE_URL_FONTE = mysql://sapl:sapl@localhost:3306/interlegis
Posteriormente rodar a seguinte sequencia de comandos estando no ambiente virtual:: Posteriormente rodar a seguinte sequencia de comandos estando no ambiente virtual::
``` ```
./manage.py shell --settings=sapl.legacy_migration_settings ./manage.py shell --settings=sapl.legacy_migration_settings
%run sapl/legacy/migration.py In [1]: from sapl.legacy.migracao import migrar_dados
migrate() In [2]: migrar_dados()
``` ```
## Migração de documentos do sapl 2.5 ## 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 2.5 todos os documentos ficavam armazenados no ZODB (o banco do Zope).
@ -60,40 +60,42 @@ No sapl 3.1 eles ficam no sistema de arquivos convencional e portanto precisam:
### Exportar os documentos para o sistema de arquivos ### 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: Siga os seguintes passos:
1. Instale o `Products.FSDump` no sapl 2.5. 1. Crie um _virtualenv_ com python 2.7
2. Instale nesse _virtualenv_ as dependências em `sapl/legacy/scripts/exporta_zope/requirements.txt`
Para isso basta colocar a pasta `Products/FSDump` do projeto https://github.com/zopefoundation/Products.FSDump na pasta `Products` da instalação do sapl 2.5 e reiniciar o Zope. 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.
A pasta a ser instalada é a seguinte: 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:
https://github.com/zopefoundation/Products.FSDump/tree/master/Products/FSDump ```
> ./exporta_zope.py caminho/para/Data.fs.old
2. Na ZMI, na pasta `sapl_documentos`, adicione um objeto do tipo `Dumper`: ```
Isso criará, na pasta `media` de sua instalação:
- Em `Filesystem path` escolha uma pasta do sistema de arquivos local para onde os arquivos serão copiados * um arquivo `usuarios.yaml` com todos os usuários do zope, seus perfis e hashes de suas senhas;
- Desmarque a opção `Use .metadata file` * uma pasta `sapl_documentos` com todo conteúdo extraído dessa pasta do zope;
- Clique no botão `Add` * uma pasta `XSLT` com todo conteúdo extraído dessa pasta do zope;
3. Use o objeto `Dumper` criado para exportar os arquivos:
- Clique no objeto `Dumper` criado para ver suas opções
- Confira seus parametros e clique em `Change and Dump`
- Aguarde a exportação dos arquivos e verifique que foram copiados para a pasta indicada
### Vincular os documentos ao novo banco do sapl 3.1 ### Vincular os documentos ao novo banco do sapl 3.1
1. Primeiramente migre o banco do sapl 2.5 para o 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
2. Copie a pasta exportada `sapl_documentos` dentro da pasta `media` da instalação do sapl 3.1
3. De forma semelhante ao realizado na migração do banco, dentro no mesmo ambiente virtual, rode os seguintes comandos:: 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 ./manage.py shell --settings=sapl.legacy_migration_settings
%run sapl/legacy/migracao_documentos.py In [1]: from sapl.legacy.migracao import migrar_documentos, migrar_usuarios
migrar_documentos() 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 ### Para indexar os arquivos para pesquisa textual
``` ```
workon sapl workon sapl

Loading…
Cancel
Save