अंत में इसका समाधान मिल गया।
अनिवार्य रूप से, मैंने प्रत्येक डेटाबेस के लिए नई कक्षाएं नहीं बनाईं, मैंने बस प्रत्येक के लिए अलग-अलग डेटाबेस कनेक्शन का उपयोग किया।
यह विधि अपने आप में बहुत आम है, मुश्किल हिस्सा (जिसे मैं उदाहरण नहीं ढूंढ सका) स्कीमा मतभेदों को संभाल रहा था। मैंने इसे पूरा कर लिया:
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