我正在尝试为每个客户端构建一个具有多个数据库的应用程序。
使用flask-mongoengine,您可以注册多个数据库连接,并在查询ORM模型时使用别名连接到数据库。我正在使用@before_request
钩子来设置租户。
app.config["MONGODB_SETTINGS"] = {
'db': 'default',
'host': 'mongodb://localhost/default',
'alias': 'default'
},
{
'db': 'client1',
'host': 'mongodb://localhost/client1',
'alias': 'client1'
}
from models.import Purchase
def get_data():
with switch_db(Purchase, g.context['tenant']) as Data:
record = Data.objects(pk=<id>).first()
return record
我能够使用这种方法成功地切换数据库。
我想全局地或在用户选择客户端时切换数据库的上下文。这样我就不必为每种方法和每次查询都更改它。