2013-07-21 5 views
37

Ich möchte eine Migration für eine Flask-App vornehmen. Ich benutze Alembic.Zieldatenbank ist nicht aktuell

Ich erhalte jedoch den folgenden Fehler.

Target database is not up to date. 

Online habe ich gelesen, dass es etwas damit zu tun hat.

Leider verstehe ich nicht ganz, wie man die Datenbank auf den neuesten Stand bringt und wo/wie ich den Code in den Link schreiben soll. Wenn Sie Erfahrung mit Migrationen haben, können Sie bitte erklären, das für mich

Dank

Antwort

46

Nach dem Erstellen einer Migration, entweder manuell oder als --autogenerate, müssen Sie es mit alembic upgrade head anwenden. Wenn Sie db.create_all() aus einer Shell verwendet haben, können Sie alembic stamp head verwenden, um anzugeben, dass der aktuelle Status der Datenbank die Anwendung aller Migrationen darstellt.

5

musste ich einige meiner Migration Dateien aus irgendeinem Grund löschen. Nicht sicher warum. Aber das hat das Problem irgendwie gelöst.

Ein Problem ist, dass die Datenbank am Ende korrekt aktualisiert wird, mit allen neuen Tabellen usw., aber die Migrationsdateien selbst zeigen keine Änderungen, wenn ich Automigrate verwende.

Wenn jemand eine bessere Lösung hat, lassen Sie es mich bitte wissen, da meine Lösung momentan ziemlich hacky ist.

+0

Ich weiß, es ist jetzt ein bisschen alt, aber erben Ihre Tabellen von Base? Ich hatte das gleiche Problem und Automigate nahm Änderungen wegen der Tatsache nicht auf, dass meine neuen Tabellen nicht von Basis erben, wo Basis 'Base = declarative_base() ' ist und sich auch an 'von sqlalchemy.ext.declarative import declarative_base erinnern ' –

Verwandte Themen