1
我使用Alembic 0.8.9,SQLAlchemy 1.1.4和我的数据库是MySQL数据库。
我在变更表,外国塔的处理:Alembic,如何更改ForeigenKey列
在我的数据库,我重命名“机关”表被命名为“目的”。 使用
from alembic import op
def upgrade():
op.rename_table('organs', 'purposes')
在那之后,我想更新我的ForeignKey的在不同的充表:
之前
class Order(DeclarativeBase):
__tablename__ = 'orders'
id = Column(Integer, autoincrement=True, primary_key=True)
organ_id = Column(Integer, ForeignKey('organs.id'))
而且
class Order(DeclarativeBase):
__tablename__ = 'orders'
id = Column(Integer, autoincrement=True, primary_key=True)
purpose_id = Column(Integer, ForeignKey('purposes.id'))
后,我需要帮助的写作一个Alembic迁移脚本这一变化将在数据库中得到体现。我如何改变一个ForeignKey列?
感谢您的帮助
为什么 “改变”?这看起来更像是“删除organ_id,添加purpose_id”。 – sebastian
如果我删除并添加,我的数据不会丢失吗?我也将表格'器官'重命名为'目的'。 –
没错 - 我不知道你的实际目标是重命名外表。在这种情况下,我的下降&创建确实是不明智的我猜 – sebastian