【发布时间】:2018-08-12 09:07:47
【问题描述】:
我已经搜索过,这里没有任何问题可以解决这个问题。我在迁移中定义了一些表,如下所示 -
from playhouse.migrate import *
db = MySQLDatabase('mydb', 'root', 'password', 'localhost', 3306)
migrator = MySQLMigrator(db)
id_field = IntegerField(null=False, unique=True, index=True, primary_key=True)
fk_field = IntegerField(null=False)
with db.atomic():
migrate(
migrator.add_column('my_table', 'id', id_field)
)
with db.atomic():
migrate(
migrator.add_column('my_table1', 'id', id_field)
migrator.add_column('my_table1', 'table_id', fk_field) # this needs to be marked as a foreign key constraint somehow?
)
但是,文档非常不清楚如何在迁移中指定外键约束。 ForeignKeyField 似乎需要一个我没有的模型。
有没有办法在迁移中指定table_id 是与my_table id 字段相关的外键?您可以在标准 SQL 中使用 FOREIGN KEY table_id REFERENCES my_table(id) 来执行此操作。
我不知所措,我即将放弃我的 SQL 迁移,因为 peewee 的文档并没有真正说明这一点。我没有使用 Django - 我刚刚在 peewee 上使用了一些我拥有的脚本。
我可以做些什么来解决这个问题,以便迁移完全定义我的模型?
【问题讨论】:
标签: python python-3.x foreign-keys peewee