[英]etl-process: from python-dataframe to postgres with SQLAlchemy
我想使用 Python 的 SQLAlchemy package 在 Postgres 數據庫中創建表,並將 dataframe 中的數據插入其中。 我還想分配外鍵和主鍵。
下面的代碼創建了兩個表,但是在模式“public”而不是模式“my_schema”中。
誰能找到錯誤?
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey, MetaData
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
# Basisklasse für alle Tabellen definieren
metadata_obj = MetaData(schema="mein_schema")
Base = declarative_base(metadata_obj)
# Tabelle 2 definieren
class Tabelle2(Base):
__tablename__ = 'tabelle2'
id = Column(Integer, primary_key=True)
name = Column(String)
# Tabelle 1 definieren
class Tabelle1(Base):
__tablename__ = 'tabelle1'
id = Column(Integer, primary_key=True)
name = Column(String)
tabelle2_id = Column(Integer, ForeignKey('tabelle2.id'))
tabelle2 = relationship(Tabelle2)
# Alle Tabellen in der Datenbank erstellen
Base.metadata.create_all(engine)
您將 metadata_obj 作為參數傳遞給 declarative_base 但未指定它屬於元數據命名參數:
Base = declarative_base(metadata=metadata_obj)
declarative_base 永遠不知道使用指定的模式並回退到連接的默認模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.