sql >> Databáze >  >> RDS >> PostgreSQL

S sqlalchemy, jak se dynamicky vázat na databázový stroj na základě požadavku

Vazba globálních objektů (mapovačů, metadat) na uživatelsky specifické připojení není dobrý způsob. Stejně jako použití relace s rozsahem. Navrhuji vytvořit novou relaci pro každý požadavek a nakonfigurovat ji tak, aby používala připojení specifická pro uživatele. Následující příklad předpokládá, že pro každou databázi používáte samostatné objekty metadat:

binds = {}

finance_engine = create_engine(url1)
binds.update(dict.fromkeys(finance_metadata.sorted_tables, finance_engine))
# The following line is required when mappings to joint tables are used (e.g.
# in joint table inheritance) due to bug (or misfeature) in SQLAlchemy 0.5.4.
# This issue might be fixed in newer versions.
binds.update(dict.fromkeys([Employee, Customer, Invoice], finance_engine))

staff_engine = create_engine(url2)
binds.update(dict.fromkeys(staff_metadata.sorted_tables, staff_engine))
# See comment above.
binds.update(dict.fromkeys([Project, Hour], staff_engine))

session = sessionmaker(binds=binds)()


  1. samostatné hodnoty oddělené čárkami a uložení do tabulky na serveru SQL

  2. Jak nahradit konkrétní hodnoty ve sloupci databáze Oracle?

  3. Vytvoření webové aplikace od nuly pomocí Python Flask a MySQL:Část 4

  4. Jak se vyhnout použití + v čísle verze s SQLiteAssetHelper