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

Menggunakan beberapa database dan skema POSTGRES dengan model Flask-SQLAlchemy yang sama

Akhirnya menemukan solusi untuk ini.

Pada dasarnya, saya tidak membuat kelas baru untuk setiap database, saya hanya menggunakan koneksi database yang berbeda untuk masing-masing.

Metode ini sendiri cukup umum, bagian yang sulit (yang saya tidak dapat temukan contohnya) adalah menangani perbedaan skema. Saya akhirnya melakukan ini:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

Session = sessionmaker()

class ContentProvider():

    db = None
    connection = None
    session = None

    def __init__(self, center):
        if center == A:
            self.db = create_engine('postgresql://%(user)s:%(pw)[email protected]%(host)s:%(port)s/%(db)s' % POSTGRES_A, echo=echo, pool_threadlocal=True)
            self.connection = self.db.connect()
            # It's not very clean, but this was the extra step. You could also set specific connection params if you have multiple schemas
            self.connection.execute('set search_path=A_schema')
        elif center == B:
            self.db = create_engine('postgresql://%(user)s:%(pw)[email protected]%(host)s:%(port)s/%(db)s' % POSTGRES_B, echo=echo, pool_threadlocal=True)
            self.connection = self.db.connect()
            self.connection.execute('set search_path=B_schema')

    def get_fra_list(self):
        logging.debug("Fetching fra list")
        fra_list = self.session.query(FRARecord.fra_code)
        return fra_list



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jatuhkan atau buat database dari prosedur tersimpan di PostgreSQL

  2. Bagaimana cara mendapatkan elemen dengan nomor unik dari array json di PostgreSQL?

  3. Obyek PQconn aman utas

  4. Rails menyertakan kueri dengan kondisi tidak mengembalikan semua hasil dari tabel kiri

  5. Bagaimana cara membuat daftar informasi tentang semua file Alfresco (Postgres SQL)?