2017-01-02 2 views
0

Ich versuche, sqlalchemy zu verwenden, um ein Schema in Postgres zu erstellen. Ich finde kein funktionierendes Beispiel für die Methode zum Erstellen des Schemas über die MetaData und reflect Funktion, wo man den Namen des Schemas deklariert.sqlachemy Erklärung der Schema-Generierung

conn = db.postgres_db(host, port, database, pass, user) 
postg_meta = sql.MetaData(bind=conn.engine) 
postg_meta.reflect(schema='transactions') 
stat_query = sql.select([sql.distinct(acocunts.c.user_id)] 

Dies ist ein Ausschnitt aus dem Code zu mir gegeben und ich bin versucht, wo und wie das Schema (‚Transaktionen‘) definiert ist, zu klären. Ich bin neu zu Sqlalchemy und der Vernunft einiger seiner Arbeitsstücke, also würde ich etwas Hilfe schätzen.

Könnte sich das auf eine Datei mit einer externen Klasse beziehen, in der das Schema definiert ist?

Danke.

Antwort

1

Postgres hat das Konzept einer schema, die hierarchisch zwischen der Datenbank und Tabelle wie database.schema.table angeordnet ist.

SQLAlchemy unterstützt dieses Konzept von für Postgres und andere Datenbanken.

Da Sie eine reflection ausführen, ist es implizit, dass dieses Schema bereits in Ihrer Datenbank existiert. Dies bezieht sich auf das Schlüsselwort schema.

können Sie confirm, dass dies der Fall ist durch die Auflistung alle Schemas in der Datenbank:

select schema_name 
from information_schema.schemata