Ich benutze Alembic 0.8.9, SQLAlchemy 1.1.4 und meine Datenbank ist eine MySQL-Datenbank.
Ich bin im Begriff, eine Tabelle zu verändern, und eine Außen Säule:Alembic, Wie ändere ich eine ForeigenKey-Spalte
In meiner Datenbank, ich bin Umbenennung 'Organe Tisch genannt werden ‚Zwecke‘.
from alembic import op
def upgrade():
op.rename_table('organs', 'purposes')
Danach verwenden, ich mag meine ForeignKey In einer differnt Tabelle aktualisieren:
Vor
class Order(DeclarativeBase):
__tablename__ = 'orders'
id = Column(Integer, autoincrement=True, primary_key=True)
organ_id = Column(Integer, ForeignKey('organs.id'))
Und Nach
class Order(DeclarativeBase):
__tablename__ = 'orders'
id = Column(Integer, autoincrement=True, primary_key=True)
purpose_id = Column(Integer, ForeignKey('purposes.id'))
Ich brauche Hilfe beim Schreiben ein Alembic-Migrations-Skript für Diese Änderung soll in der Datenbank widergespiegelt werden. Wie ändere ich eine ForeignKey-Spalte?
Danke für die Hilfe
Warum "alter"? Dies scheint eher "organ_id entfernen, add zweck_id". – sebastian
Wenn ich drop and add, werden meine Daten nicht verloren gehen? Ich benenne auch die Tabelle 'Organe' in 'Zwecke' um. –
Das ist richtig - ich war mir nicht bewusst, dass Sie eigentlich Ziel ist die Umbenennung der fremden Tabelle. In diesem Fall ist mein Drop & Create in der Tat nicht sinnvoll, ich denke – sebastian