SQLAlchemy ForeignKey找不到表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLAlchemy ForeignKey找不到表相关的知识,希望对你有一定的参考价值。
当我尝试实例化ConsumerAdvice
类时出现此错误。
Foreign key associated with column 'tbConsumerAdvice.ConsumerAdviceCategory_ID'
could not find table 'tbConsumerAdviceCategories' with which to generate a
foreign key to target column 'ID_ConsumerAdviceCategories'
class ConsumerAdviceCategory(Base):
__tablename__ = 'tbConsumerAdviceCategories'
__table_args__ = {'schema':'dbo'}
ID_ConsumerAdviceCategories = Column(INTEGER, Sequence('idcac'),
primary_key=True)
Name = Column(VARCHAR(50), nullable=False)
def __init__(self,Name):
self.Name = Name
def __repr__(self):
return "< ConsumerAdviceCategory ('%s') >" % self.Name
class ConsumerAdvice(Base):
__tablename__ = 'tbConsumerAdvice'
__table_args__ = {'schema':'dbo'}
ID_ConsumerAdvice = Column(INTEGER, Sequence('idconsumeradvice'),
primary_key=True)
ConsumerAdviceCategory_ID = Column(INTEGER,
ForeignKey('tbConsumerAdviceCategories.ID_ConsumerAdviceCategories'))
Name = Column(VARCHAR(50), nullable=False)
Category_SubID = Column(INTEGER)
ConsumerAdviceCategory = relationship("ConsumerAdviceCategory",
backref=backref('ConsumerAdvices'))
def __init__(self,Name):
self.Name = Name
def __repr__(self):
return "< ConsumerAdvice ('%s') >" % self.Name
答案
定义FK包括架构:dbo.tbConsumerAdviceCategories.ID_ConsumerAdviceCategories
另一答案
我也遇到了这个错误。在我的情况下,根本原因是我试图定义不同的sqlalchemy基类:
Base1 = declarative_base(cls=MyBase1)
Base1.query = db_session.query_property()
Base2 = declarative_base(cls=MyBase2)
Base2.query = db_session.query_property()
我有一个ForeignKey
关系,从一个类来自Base1
到另一个来自Base2
的类。这不起作用 - 我有一个类似的NoReferencedTableError
。显然,类必须从相同的Base类派生才能相互了解。
希望这有助于某人。
另一答案
这并没有解决我的问题,我不得不使用。
ConsumerAdviceCategory_ID = Column(INTEGER,
ForeignKey('tbConsumerAdviceCategories.ID_ConsumerAdviceCategories',
schema='dbo'))
以上是关于SQLAlchemy ForeignKey找不到表的主要内容,如果未能解决你的问题,请参考以下文章