繁体   English   中英

Flask SQLAlchemy 找不到用于生成外键的表,即使表存在

[英]Flask SQLAlchemy could not find table with which to generate Foreign Key even though table exists

class BigBoxModel(db.Model):
    __tablename__ = "bigbox"
    id = db.Column(db.BigInteger, primary_key=True, autoincrement=True)
    name = db.Column(db.String, unique=True, nullable=False)
    vendor_id = db.Column(db.BigInteger, db.ForeignKey("vendors.id"), nullable=False)

我正在尝试使用 bigbox 表,但不断收到错误消息:

与列 'bigbox.vendor_id' 关联的外键找不到表 'vendors' 用于生成目标列 'id' 的外键

供应商表存在于另一个文件中。 我无法导入它,因为这会导致循环导入,因为两个文件中都存在许多常用库。 我还通过运行以下命令检查了所有表名:

db.engine.table_names()

供应商表确实存在,但我仍然不断收到同样的错误。 我正在使用 Flask、SQLalchemy、Postgres。

您可以尝试使用 Class 名称进行外键映射。 在你的 BigBoxModel 中,你可以有类似的东西
vendor_id = db.Column(db.BigInteger, db.ForeignKey(Vendors.id), nullable=False)。 在这种情况下,假定供应商是 class 名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM