Eu tenho um banco de dados legado que estou usando em um aplicativo no Django. Eu usei a funcionalidade admin do django para gerar o arquivo models.py das tabelas existentes.
Se eu fizer alterações nos modelos, como adicionar um unique_together
constraint to models, são as mudanças gerenciadas pelo Django, ou eu tenho que de alguma forma aplicar as mudanças do modelo no banco de dados?
Respostas:
3 para resposta № 1Para que o django detecte mudanças, você precisará usar uma ferramenta de migração de terceiros chamada south
. Agora, desde que você já tenha cometido o significado que você correu python manage.py syncdb
, você precisará excluir a tabela e começar de novo.
É assim que você faz isso (depois de ter deletado sua tabela):
- Instale o sul usando
pip install south
- Adicione o sul aos aplicativos instalados e verifique se ele vem antes de todos os outros aplicativos que você criou
- Rode isto:
python manage.py schemamigration --inital <your app name>
- Rode isto:
python manage.py migrate <your app name>
- Rode isto:
python manage.py syncdb
<- da última vez você precisará executá-lo :)
Espero que isso tenha ajudado.