Comment migrer à partir de la migration initiale dans Django 1.7?

117

J'ai créé une nouvelle application avec certains modèles et maintenant j'ai remarqué que certains modèles sont mal pensés. Comme je n'ai pas validé le code, la chose sensée serait de migrer la base de données pour qu'elle reste en bon état et de refaire la migration avec de meilleurs modèles. Dans ce cas, le dernier bon état est la base de données où la nouvelle application n'existe pas.

Comment puis-je migrer à partir de la migration initiale dans Django 1.7?

Dans l' Southun pourrait faire:

python manage.py migrate <app> zero

Ce qui effacerait <app>de l'historique de migration et supprimerait toutes les tables de <app>.

Comment faire cela avec les migrations Django 1.7?

Seppo Erviälä
la source

Réponses:

197

Vous pouvez faire la même chose avec Django 1.7+ également:

python manage.py migrate <app> zero

Cela efface <app>de l'historique de migration et supprime toutes les tables de<app>

Consultez la documentation de django pour plus d'informations.

ChillarAnand
la source
7
Est-ce documenté quelque part? La documentation de django sur les migrations manque cruellement ...
rnevius
2
Doc peut être trouvé dans la page de documentation django-admin et manage.py: docs.djangoproject.com/en/1.7/ref/django-admin/…
n__o
@Non merci. Réponse mise à jour.
ChillarAnand
1
Comment géreriez-vous IntegrityError: la contrainte NOT NULL a échoué?
wasabigeek
2
Je viens de l'essayer sur Django 1.9 et cela a bien fonctionné également. Merci
Dário
9

vous pouvez également utiliser le numéro de version:

python manage.py migrate <app> 0002

Source: https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate

jsh
la source
5
La question posée concerne la migration de retour depuis la migration initiale et l'utilisation 0000ne fonctionne pas
guival
Je vois, j'ai peut-être mal compris la question (même si ce n'est pas particulièrement bien écrit à mon humble avis). pourquoi ne pas laisser tomber la DB? oh well
jsh
2
abandonner toute la base de données pour une table est un peu exagéré
guival