PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Dengan sqlalchemy cara mengikat secara dinamis ke mesin database berdasarkan permintaan

Mengikat objek global (pemeta, metadata) ke koneksi khusus pengguna bukanlah cara yang baik. Serta menggunakan sesi lingkup. Saya menyarankan untuk membuat sesi baru untuk setiap permintaan dan mengonfigurasinya untuk menggunakan koneksi khusus pengguna. Contoh berikut mengasumsikan bahwa Anda menggunakan objek metadata terpisah untuk setiap database:

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. Impor dump MySQL ke database PostgreSQL

  2. Di mana PostgreSQL menyimpan file konfigurasi/conf?

  3. Postgres/JSON - perbarui semua elemen array

  4. PostgreSQL - Ganti nama basis data

  5. haruskah saya mengaktifkan kumpulan pernyataan c3p0?