我收到错误
无法解析字符串'MACHINE_IE'
中的rfc1738网址
当我尝试导入以下内容时
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”然后尝试显示查询中的一些数据时,我得到以下内容
sqlalchemy.exc.NoReferencedTableError:与“MACHINE_IE.IE_UID”列关联的外键无法找到用于生成目标列“IE_UID”的外键的表“IE”
我猜我需要“元数据”但是当我使用它时,错误似乎是抱怨db连接字符串。但是,如果删除“元数据”,我可以连接到db w / o问题。
这是连接数据
connect_string = "oracle+cx_oracle://{0}:{1}@{2}:{3}/{4}".format(user, pw, server, port, sid)
感谢任何帮助。
答案 0 :(得分:2)
您正在使用Base
的多个实例。你应该这样做:
Base = declarative_base()
class MACHINE(Base):
...
class IE(Base):
...
...