我收到错误
无法从字符串“MACHINE_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_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)
如果我删除
metadata
然后我可以导入模块并对“MACHINE”和“IE”表执行查询并显示行中的数据。但是,当我查询“MACHINE_IE”,然后尝试显示查询中的一些数据时,我得到以下信息
sqlalchemy.exc.NoReferencedTableError:与列“MACHINE_IE.IE_UID”关联的外键找不到用于生成目标列“IE_UID”外键的表“IE”
我猜我需要其中的“元数据”,但当我使用它时,错误似乎是在抱怨数据库连接字符串。但是,如果删除“元数据”,我可以连接到数据库而不会出现问题。
这是连接数据
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):
...
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)