Wie der Titel schon sagt, hat sich die Migration von Django nicht in der Datenbank niedergeschlagen und ich habe gelitten, also werde ich sie aufzeichnen.
・ Windows10 Enterprise -Docker Desktop für Windows: 2.1.0.1 ・ MySQL: 5.7.28 (auf Docker) ・ Django: 3.0 (auf Docker)
Als ich models.py ein neues Modell (als ** Modell A ** bezeichnet) hinzufügte und es migrierte, wurde es nicht in der Datenbank wiedergegeben. Da Änderungen in anderen Modellen berücksichtigt werden, wird geschätzt, dass nur ** Modell A ** ein Problem darstellt.
Ich habe verschiedene Dinge unter Bezugnahme auf die folgenden Artikel versucht.
・ Was ist zu tun, wenn Sie mit Django migrieren, dies wird jedoch nicht in der DB [Django-Ausgabe] angezeigt? ・ Zurücksetzen von Migrationen mit Django (Beibehalten der vorhandenen Datenbank) ・ Kann nicht mit Django migrieren ・ Reflexion von Djangos models.py (python manage.py makemigrations / migrate) ・ Das Phänomen, dass eine Spalte zum Modell hinzugefügt, aber nicht zur Migrationsdatei hinzugefügt wird ・ Was tun, wenn die Migration von python manage.py nicht funktioniert? [Django]
Im Allgemeinen wurde gesagt, dass wenn Sie den Migrationsverlauf mit "python manage.py migrate --fake hoge zero" löschen, die Dateien im Ordner löschen, dann migrieren und migrieren, dies angezeigt wird, aber gelöscht wurde.
Sobald ich die Datenbank lösche und erneut versuche zu migrieren ... ** Modell A ** und ein anderes Modell (nennen wir es ** Modell B ) werden nicht wiedergegeben. Wenn ich "models.py" mit einem guten Gefühl von "?" Lies, haben nur diese beiden Modelle die Zeichen " verwaltet = Falsch **" in "Klasse Meta:".
models.py
class Meta:
managed = False
db_table = 'temp'
Ich habe es gelöscht und erneut migriert, und es war geschafft. Einfach. Ich habe die Grundlagen einfach nicht verstanden. ** Modell B ** fügt das von irgendwo kopierte Format ein, und ich habe es kopiert, um ** Modell A ** zu erstellen. Es scheint also, dass ich in dieser Falle gefangen bin. Wenn Sie "verwaltet = falsch" schreiben, wird die Migration anscheinend nicht verwaltet. Das sollte nicht reflektiert werden. (Ich schrieb in "History", dass die Änderungen anderer Modelle reflektiert wurden, aber ich habe es nicht mit ** Model B ** versucht)
Es ist ein Rätsel, warum die Kopierquelle dies enthielt, aber da es vorerst funktionierte ... Unter Leuchtturm leben. Ich beschloss, es etwas genauer zu betrachten.
Recommended Posts