簡體   English   中英

etl-process:從 python-dataframe 到 postgres SQLAlchemy

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM