Je travaille sur un projet Django qui est en ligne depuis des mois. Aucun changement au fichier de paramètres ou à l'environnement lui-même.Django migrate travaille sur une production locale mais pas sur Elastic Beanstalk
J'ai récemment ajouté un champ à un modèle, mais lorsque je le déploie dans mon environnement Amazon Elastic Beanstalk, il ne parvient pas à migrer les modifications dans la base de données. Je reçois le message d'erreur suivant:
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
No migrations to apply.
Your models have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
Maintenant, le message d'erreur peut sembler assez évident, mais chose est que je fait une copie de la base de données à partir du serveur de production à mon serveur de base de données locale et essayé à nouveau la commande migrate
, Voila travaille sur local. Aucun message d'erreur concernant les modèles en cours de modification. Lorsque j'exécute makemigrations
, je reçois No changes detected.
. J'ai également essayé makemigrations <app>
pour chaque application dans mon projet. Dit toujours No changes detected
.
donc un résumé:
J'ai apporté des modifications à un modèle, je fait de nouvelles migrations, j'essayé de migrer sur le serveur de production et le résultat était une erreur. J'ai essayé sur le serveur local avec une copie exacte de la base de données, et cela fonctionne très bien.
Des idées?
EDIT:
Il semble que cela a quelque chose à voir avec ImageField
. Le champ que j'ai ajouté à mon modèle était un ImageField
, mais quand je l'ai retiré, puis testé en ajoutant à la fois CharField
et FileField
la migration a bien fonctionné.
Lorsque j'ai ensuite modifié le FileField
et l'a transformé en ImageField
l'erreur migrate
a renvoyé.
Très déroutant.