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:
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