2017-04-18 8 views
0

Ich habe meine Modellklasse mit ID geändert von autoincrement = False zu autoincrement = True, aber das Flask Migrate-Paket erkennt die Änderung nicht für die Datenbank? Wie kann ich das beheben?Flashmigrieren erkennt keine Autoincrement-Änderungen der Spalte?

class User(db.Model): 
    __tablename__ = 'users' 
    id = db.Column(db.Integer, unique=True, primary_key=True, autoincrement=True) 

Die Migrate Befehlsprotokoll:

INFO [alembic.runtime.migration] Context impl MySQLImpl. 
INFO [alembic.runtime.migration] Will assume non-transactional DDL. 
INFO [alembic.env] No changes in schema detected. 
+0

Wahrscheinlich müssen Sie es selbst machen, da migration komplette Änderungen an Models aufzeichnet. –

Antwort

1

Die automatisch generierten Migrationsskripts sind nicht zu 100% korrekt jedes Mal bedeutete, sind sie nur als Vorspeise gedacht. Sie sollten es überprüfen und alles hinzufügen oder korrigieren, das nicht korrekt ist. Also würde ich sagen, fügen Sie einfach das Autoinkrement zum Skript hinzu und das sollte es sein.

+0

Danke. Wenn es keine Änderungen erkennt, erstellt es sogar keine Migrationsdateien für die Bearbeitung. Dann müssen wir Migrationsdatei manuell erstellen, es ist so ärgerlich :( –

+1

Haben Sie versucht, mit dem 'revision' Befehl? Das generiert ein leeres Migrationsskript, das Sie manuell bearbeiten können. – Miguel

+0

Ich tat es nicht. Vielen Dank, mich zu lassen weiß, Beste (y) –