gpt4 book ai didi

python - Flask-SQLAlchemy:SQLALCHEMY_ENGINE_OPTIONS 设置不正确

转载 作者:行者123 更新时间:2023-12-02 11:06:18 34 4
gpt4 key购买 nike

我刚刚将我的项目 Flask-SQLAlchemy 版本更新到最新版本 (v2.4)。由于某些 SQL-Alchemy 配置参数已被弃用,我现在遵循文档并将 SQLALCHEMY_ENGINE_OPTIONS 作为字典添加到我的配置类中。但是,当我尝试查询数据库时,出现错误。

我正在查找 sqlalchemy 的 create_engine() 所需的确切关键字。

这是我的配置类:

class ConfigAPI:

try:

SQLALCHEMY_DATABASE_URI = os.environ['MYSQL_URI']

except KeyError as e:

logging.warning('FAILED DEFINING MYSQL PARAMETER')

logging.fatal(e)

sys.exit(1)

SECRET_KEY = '123456asdsadfsdfasadfa67893nvkabl790'
SQLALCHEMY_ECHO = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ENGINE_OPTIONS = {
'pool': QueuePool,
'pool_size' : 10,
'pool_recycle':120,
'pool_pre_ping': True
}

这是我的 app_factory 文件

db = SQLAlchemy()

def create_api(config=ConfigAPI):
app = Flask(__name__)

from app_projects.internal_api.api_v0 import blueprint as v0
app.config.from_object(config)
db.init_app(app)
cors.init_app(app)
app.register_blueprint(v0)

return app

这是我收到的错误:

TypeError: Invalid argument(s) 'pool_size','pool_recycle','pool_pre_ping' sent to create_engine(), using configuration MySQLDialect_pymysql/type/Engine.  Please check that the keyword arguments are appropriate for this combination of components.

我在这里缺少什么?

最佳答案

正如您在评论中已经提到的,问题出在池参数中。

SQLAlchemy documentation指定 PoolQueuePool实例可以是 pool 参数。

有效的示例是:

SQLALCHEMY_ENGINE_OPTIONS = {
'pool': QueuePool(creator),
'pool_size': 10,
'pool_recycle': 120,
'pool_pre_ping': True
}

关于python - Flask-SQLAlchemy:SQLALCHEMY_ENGINE_OPTIONS 设置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56271116/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com