如何解决SQLALCHEMY 中的外键映射问题
我有两种模式,一种是 IndexDetails,另一种是 PriceIndex。在 PriceIndex 外键没有正确映射 IndexDetails 主 keys.parent_id
应该在 1 到 4 之间,但它没有。
class IndexDetails(Base):
__tablename__ = 'index_details'
__table_args__ = ({"schema": "demo"})
id = Column(Integer,primary_key=True,nullable= False,\ unique=True,autoincrement=True)
ticker = Column(String(20))
name=Column(String(20))
region=Column(String(20))
# children = relationship("IndexPrice",back_populates="parent")
tracker_data = relationship("IndexPrice",backref="parent")
class IndexPrice(Base):
__tablename__ = 'child_index'
__table_args__ = ({"schema": "demo"})
id = Column(Integer,unique= True,autoincrement=True)
ticker = Column(String(20))
asof_date = Column(Date)
last_price = Column(Float)
parent_id = Column(Integer,ForeignKey('demo.index_details.id'))
def main():
engine = setup_db_conn()
create_db_schema(engine)
session=start_session(engine)
df=pd.read_csv('test1.csv')
# print(df.head())
for _,row in df.iterrows():
data = IndexDetails(ticker=row['Ticker'],name=row['Name'],region=row['Region'])
session.add(data)
session.flush()
session.commit()
session=start_session(engine)
df=pd.read_csv('test2.csv')
for _,row in df.iterrows():
data = IndexPrice(ticker=row['Ticker'],asof_date=row['Date'],last_price=row['LastPrice'],parent=IndexDetails(ticker=row["Ticker"]))
session.add(data)
session.commit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。