Quelque chose s’est mal passé lors de mes migrations, j’ai ajouté un nouveau champ datetime à un modèle, puis j’ai utilisé makemigrations et migré.
python manage.py makemigrations python manage.py migrate
Mais après cela, la migration a obtenu une “erreur de table existe déjà”. Je supposais que je pouvais simuler les migrations et recommencer, alors j’ai fait
python manage.py makemigrations --fake core Operations to perform: Apply all migrations: core Running migrations: Rendering model states... DONE Applying core.0001_initial... FAKED Applying core.0002_auto_20150525_1331... FAKED Applying core.0003_auto_20150525_1348... FAKED Applying core.0004_processo_data_atualizacao... FAKED
mais la nouvelle migration que je viens de créer était aussi fausse (bien sûr!).
Comment est-ce que la bonne façon de refaire une migration (dans ce cas le core.0004) après cela?
Vous devez d’abord définir votre état actuel sur 0003 avec --fake
(en supposant que 0003 est la dernière migration que vous avez réellement appliquée):
python manage.py migrate --fake core 0003
Et ensuite procédez comme d’habitude:
python manage.py migrate core
Documentation pertinente: https://docs.djangoproject.com/en/dev/ref/django-admin/#migrate