South
South é uma aplicação do django responsável por gerenciar as modificações feitas no projeto que influenciam em criação/edição/remoção de tabelas e/ou campos no banco de dados.
Para instalar o south no ambiente:
pip install south
adicionar ele na installed_apps
Com o South NÃO DEVE-SE USAR o syncdb do django para criação das tabelas de suas apps. Apenas deve ser rodado o syncdb para criação das tabelas referente as aplicações padrões do settings e mais a do south.
Para criação das tabelas de uma nova aplicação utilizar:
python manage.py schemamigration NOME_DA_APP --initial
Para criação de todas as tabelas do projeto, basta omitir o nome da app.
Os comandos acima vão criar apenas os schemas de migração, nada será alterado no banco de dados. Para aplicar as migrações deve-se utilizar o comando:
python manage.py migrate NOME_DA_APP
Para todos os esquemas, basta omitir o nome da app.
Depois da situação inicial criada, caso haja necessidade de adicionar/remover campos nos models, utilizar seguinte comando para sincronizar os schemas:
python manage.py schemamigration NOME_DA_APP --auto
E para aplicar as migrações da mesma forma descrita anteriormente:
python manage.py migrate NOME_DA_APP
Caso deseje aplicar o South em algum projeto que não tenha, e as tabelas já tenham sido criadas, basta instalar o South como descrito acima, e utilizar o comando:
python manage.py convert_to_south NOME_DA_APP
O south cria no banco de dados algumas tabelas para controle do que já foi migrado para não tentar fazer novamente, caso deseje informar o south que aquela migração já tenha sido realizada, possivelmente para corrigir algum problema, basta utilizar o comando:
python manage.py migrate --fake
Desta forma ele vai apagar as migrações contidas nos schemas gerados e colocar no banco como realizada, sem fazer nenhuma alteração no banco.
Nenhum comentário:
Postar um comentário