2015-01-30 7 views
0

Я использую SqlAlchemy для доступа к нескольким базам данных (на том же сервере). Моя текущая строка подключения следующейSqlAlchemy Несколько баз данных Python

connect_string = "mssql+pyodbc://{0}:{1}@{2}/{3}".format(USERNAME_R, PASSWORD_R, SERVER_R, DATABASE_R) 
engine = create_engine(connect_string) 
session = sessionmaker(bind=engine)() 
Record = declarative_base(engine) 

Как изменить это заявление, чтобы иметь возможность подключения к нескольким базам данных на одном сервере (например, DATABASE1 & DATABASE2). Похоже, что это указывает в правильном направлении, но это не очень понятно, и я не уверен, если он специфичен для Настой:

https://pythonhosted.org/Flask-SQLAlchemy/binds.html

ответ

0

(рука-волнистый ответ из-за нехватки времени, извините.)

Не привязывайте двигатель к declarative_base. Наследуйте форму только declarative_base().

Вместо этого передайте определенный движок sqlalchemy.orm.sessionmaker при создании сеанса. Создайте разные фабрики транзакций (что возвращает sessionmaker) для разных движков. В ваших запросах используйте .with_session для привязки к определенному сеансу и, следовательно, к определенному движку.

Смежные вопросы