Flask-SqlAlchemy 每个绑定引擎选项

问题描述 投票:0回答:2

似乎应该有一种干净的方式来指定绑定的引擎选项?根据here的答案,我猜不是?

flask-sqlalchemy
2个回答
0
投票

我看到 2 个选项,但并不真正关心:

  1. 按照上述链接注释中的建议使用 apply_driver_hacks
  2. 使用 SQLAlchemy 事件挂钩 修改连接,将
    db.engines['bind_name']
    等绑定引擎传递给事件装饰器。注意:您确实需要在应用程序上下文中才能正常工作。

我最终使用了 2,因为我已经对将其用于动态令牌的方法感到满意,但真的想要一个更干净的解决方案。


0
投票

你可以这样做:

SQLALCHEMY_ENGINE_OPTIONS = {
    'pool_pre_ping': True,
    ...
}
SQLALCHEMY_BINDS = {
    'users': {
        'url': 'sqlite:///',
        'pool_pre_ping': True,
        ...
    },
    'application': SQLALCHEMY_DATABASE_URI
} 

它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.