Comme le titre l'indique, même si j'ai migré depuis Django, cela ne s'est pas reflété dans la base de données et j'ai souffert, je vais donc l'enregistrer.
・ Windows10 Entreprise -Docker Desktop pour Windows: 2.1.0.1 ・ MySQL: 5.7.28 (sur Docker) ・ Django: 3.0 (sur Docker)
Lorsque j'ai ajouté un nouveau modèle (appelé ** modèle A **) à models.py et que je l'ai migré, il n'a pas été reflété dans la base de données. Étant donné que les changements dans d'autres modèles sont reflétés, on estime que seul le ** modèle A ** pose problème.
J'ai essayé diverses choses en référence aux articles suivants.
・ Que faire lorsque vous migrez avec Django mais cela n'est pas reflété dans la base de données [Django output] ・ Comment réinitialiser les migrations avec Django (en conservant la base de données existante) ・ Impossible de migrer avec django ・ Réflexion sur les models.py de Django (python manage.py makemigrations / migrate) ・ Le phénomène selon lequel une colonne est ajoutée au modèle mais pas ajoutée au fichier de migration ・ Que faire lorsque la migration de python manage.py ne fonctionne pas [Django]
Généralement, il a été dit que si vous supprimez l'historique de migration avec "python manage.py migrate --fake hoge zero", supprimez les fichiers dans le dossier, puis effectuez la migration et migrez, il sera reflété, mais il a été effacé.
Donc, une fois que je laisse tomber la base de données et que j'essaye de migrer à nouveau ... ** Le modèle A ** et un autre modèle (appelons-le ** modèle B ) ne sont pas reflétés. Quand je lis "models.py" avec une bonne impression de "?", Seuls ces deux modèles ont les caractères " managed = False **" dans "class Meta:".
models.py
class Meta:
managed = False
db_table = 'temp'
Je l'ai supprimé et migré à nouveau, et c'est fait. Facile. Je n'ai tout simplement pas compris les bases. ** Le modèle B ** colle le format copié de quelque part, et je l'ai copié pour créer le ** modèle A **, il semble donc que je me suis retrouvé pris dans ce piège. En écrivant "managed = False", il semble que la migration ne sera pas gérée. Cela ne devrait pas être reflété. (J'ai écrit dans "History" que les changements d'autres modèles étaient reflétés, mais je ne l'ai pas essayé avec ** Model B **)
C'est un mystère pourquoi la source de copie a inclus cela, mais comme cela a fonctionné pour le moment ... Sous le phare vivant. J'ai décidé de regarder un peu plus près.
Recommended Posts