PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sử dụng nhiều cơ sở dữ liệu và lược đồ POSTGRES với cùng một mô hình Flask-SQLAlchemy

Cuối cùng đã tìm ra giải pháp cho vấn đề này.

Về cơ bản, tôi không tạo các lớp mới cho mỗi cơ sở dữ liệu, tôi chỉ sử dụng các kết nối cơ sở dữ liệu khác nhau cho mỗi lớp.

Phương pháp này tự nó khá phổ biến, phần khó khăn (mà tôi không thể tìm thấy ví dụ về) là xử lý sự khác biệt về lược đồ. Tôi đã kết thúc việc này:

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. Làm cách nào để gọi một hàm cơ sở dữ liệu bằng SQLAlchemy trong Flask?

  2. Postgres thiếu lỗi nhập mệnh đề FROM trên truy vấn với mệnh đề WITH

  3. Postgresql:Làm thế nào để thoát khỏi các dấu ngoặc kép trong trình kích hoạt Cơ sở dữ liệu?

  4. Báo giá đô la chưa kết thúc

  5. Hàm array_append không hoạt động