Я хочу использовать явную настройку БД master-master вместе с Flask и SQLAlchemy, надеюсь, это поддерживается Flask-SQLAlchemy.
Я хочу иметь возможность сделать что-то вроде следующего фрагмента кода, но я не уверен, поддерживается ли он Flask-SQLAlchemy.
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
SQLALCHEMY_DATABASE_URI = 'default_DB_uri'
SQLALCHEMY_BINDS = { 'master1':'first_master_DB_uri', 'master2': 'second_master_DB_uri' }
app.config['SQLALCHEMY_DATABASE_URI'] = SQLALCHEMY_DATABASE_URI
app.config['SQLALCHEMY_BINDS'] = SQLALCHEMY_BINDS
db = SQLAlchemy(app)
@app.route('/some_endpoint')
def some_endpoint():
# read some data for the default DB
readData = db.session.query('select ...')
m = SomeModel()
masterSession1 = db.session(bind='master1')
# persist the data in m into the first master
masterSession1.add(m)
masterSession2 = db.session(bind='master2')
# persist the data into the second master
masterSession2.add(m)
return "some return value"
Есть ли способ добиться этого с помощью Flask-SQLAlchemy и привязки? Я предполагаю, что Flask-SQLAlchemy уже обрабатывает более одного механизма с привязками, но я не вижу, как использовать это для явного выбора БД, а не выбора на основе модели, как упомянуто здесь: http://pythonhosted.org/Flask-SQLAlchemy/binds.html
Спасибо за помощь.