SQLAlchemy使用自动加载创建表时出现循环依赖项错误
我正在尝试使用找到的脚本 我正在连接到MS SQL数据库,并试图将其复制到MySQL数据库中。当脚本到达这一行时:SQLAlchemy使用自动加载创建表时出现循环依赖项错误,sqlalchemy,Sqlalchemy,我正在尝试使用找到的脚本 我正在连接到MS SQL数据库,并试图将其复制到MySQL数据库中。当脚本到达这一行时: table.metadata.create_all(dengine) 我得到的错误是: sqlalchemy.exc.CircularDependencyError 我重新搜索了这个错误,发现它发生在创建表时使用autoload=True时。不过,这个解决方案对我没有帮助。解决方法是在定义外键时不使用autoload=True并使用use\u alter=True标志,但我不是手
table.metadata.create_all(dengine)
我得到的错误是:
sqlalchemy.exc.CircularDependencyError
我重新搜索了这个错误,发现它发生在创建表时使用autoload=True
时。不过,这个解决方案对我没有帮助。解决方法是在定义外键时不使用autoload=True
并使用use\u alter=True
标志,但我不是手动定义表,因此无法设置该标志
任何关于如何纠正这个问题的帮助,或者关于如何更好地完成我正在尝试做的事情的帮助,都将不胜感激。谢谢。您可以遍历所有约束并对其设置“使用更改”:
from sqlalchemy.schema import ForeignKeyConstraint
for table in metadata.tables.values():
for constraint in table.constraints:
if isinstance(constraint, ForeignKeyConstraint):
constraint.use_alter = True
或者类似地,遍历它们并将它们指定为AddConstraint
操作,在整个元数据创建之后绑定到:
from sqlalchemy import event
from sqlalchemy.schema import AddConstraint
for table in metadata.tables.values():
for constraint in table.constraints:
event.listen(
metadata,
"after_create",
AddConstraint(constraint)
)
看