PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

С sqlalchemy как динамично да се свързвате към машината на базата данни на база заявка

Обвързването на глобални обекти (картографи, метаданни) към специфична за потребителя връзка не е добър начин. Както и използването на сесия с обхват. Предлагам да създадете нова сесия за всяка заявка и да я конфигурирате да използва специфични за потребителя връзки. Следната проба предполага, че използвате отделни обекти с метаданни за всяка база данни:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция за връщане на динамичен набор от колони за дадена таблица

  2. Как да изброите таблици в текущата база данни с помощта на PostgreSQL

  3. Използване на слотове за репликация на PostgreSQL

  4. PostgreSQL:Шест не толкова лесни части

  5. Оптимизация на заявки в PostgreSQL. EXPLAIN Basics – Част 1