PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

एक ही फ्लास्क-SQLAlchemy मॉडल के साथ कई POSTGRES डेटाबेस और स्कीमा का उपयोग करना

अंत में इसका समाधान मिल गया।

अनिवार्य रूप से, मैंने प्रत्येक डेटाबेस के लिए नई कक्षाएं नहीं बनाईं, मैंने बस प्रत्येक के लिए अलग-अलग डेटाबेस कनेक्शन का उपयोग किया।

यह विधि अपने आप में बहुत आम है, मुश्किल हिस्सा (जिसे मैं उदाहरण नहीं ढूंढ सका) स्कीमा मतभेदों को संभाल रहा था। मैंने इसे पूरा कर लिया:

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. PostgreSQL में VACUUM प्रसंस्करण का अवलोकन

  2. Django के साथ PostgreSQL स्कीमा / नेमस्पेस

  3. Postgres अनुक्रमणिका नाम किस स्तर पर अद्वितीय होने चाहिए?

  4. डेटाबेस से अनुक्रमिक डेटा पुनर्प्राप्त करने का सबसे तेज़ तरीका क्या है?

  5. एकल चयन सूची में SQL एकाधिक UNNEST