Python SqlAlchemy外键问题
我发现了错误 无法从字符串“MACHINE\u IE”分析rfc1738 URL 当我尝试导入以下内容时Python SqlAlchemy外键问题,python,sqlalchemy,Python,Sqlalchemy,我发现了错误 无法从字符串“MACHINE\u IE”分析rfc1738 URL 当我尝试导入以下内容时 class MACHINE(declarative_base()): __tablename__ = 'MACHINE' MACHINE_UID = Column(Integer, primary_key=True) MACHINE_IP = Column(String) MACHINE_NAME = Column(String) MACHINE_IN
class MACHINE(declarative_base()):
__tablename__ = 'MACHINE'
MACHINE_UID = Column(Integer, primary_key=True)
MACHINE_IP = Column(String)
MACHINE_NAME = Column(String)
MACHINE_INFO = Column(String)
class IE(declarative_base()):
__tablename__ = 'IE'
IE_UID = Column(Integer, primary_key=True)
IE_VERSION = Column(String)
IE_MAJOR = Column(String)
class MACHINE_IE(declarative_base().metadata):
__tablename__ = 'MACHINE_IE'
IE_UID = Column(Integer, ForeignKey("IE.IE_UID"), primary_key=True)
MACHINE_UID = Column(Integer, ForeignKey("MACHINE.MACHINE_UID"))
EFFECTIVE_DATE = Column(DateTime)
如果我删除
元数据
然后我可以导入模块,在“MACHINE”和“IE”表上执行查询,并显示行中的数据。然而,当我查询“MACHINE_IE”,然后尝试显示查询中的一些数据时,我得到以下结果
class MACHINE(declarative_base()):
__tablename__ = 'MACHINE'
MACHINE_UID = Column(Integer, primary_key=True)
MACHINE_IP = Column(String)
MACHINE_NAME = Column(String)
MACHINE_INFO = Column(String)
class IE(declarative_base()):
__tablename__ = 'IE'
IE_UID = Column(Integer, primary_key=True)
IE_VERSION = Column(String)
IE_MAJOR = Column(String)
class MACHINE_IE(declarative_base().metadata):
__tablename__ = 'MACHINE_IE'
IE_UID = Column(Integer, ForeignKey("IE.IE_UID"), primary_key=True)
MACHINE_UID = Column(Integer, ForeignKey("MACHINE.MACHINE_UID"))
EFFECTIVE_DATE = Column(DateTime)
sqlalchemy.exc.norReferencedTableError:与列“MACHINE\u IE.IE\u UID”关联的外键找不到表“IE”,用于生成指向目标列“IE\u UID”的外键
我猜我需要“元数据”在那里,但错误似乎是抱怨数据库连接字符串时,我使用它。但是,如果“元数据”被删除,我可以连接到db w/o问题
这是连接数据
connect_string = "oracle+cx_oracle://{0}:{1}@{2}:{3}/{4}".format(user, pw, server, port, sid)
非常感谢您的帮助。您正在使用多个
Base
实例。你应该做:
Base = declarative_base()
class MACHINE(Base):
...
class IE(Base):
...
...
您正在使用多个
Base
实例。你应该做:
Base = declarative_base()
class MACHINE(Base):
...
class IE(Base):
...
...
确切地请看。如果您能提到一些关于基础和元数据是如何协同工作的,以及关于从meta.net进行表查找的,那么这将是一个很好的答案。请看。如果您提到一些关于基础和元数据是如何协同工作的,以及关于从元数据中查找表的内容,那么这将是一个很好的答案。