类型错误:使用 flask_sqlalchemy 时发送到 create_engine() 的参数“pool_size”无效
Posted
技术标签:
【中文标题】类型错误:使用 flask_sqlalchemy 时发送到 create_engine() 的参数“pool_size”无效【英文标题】:TypeError: Invalid argument(s) 'pool_size' sent to create_engine() when using flask_sqlalchemy 【发布时间】:2016-09-05 13:55:20 【问题描述】:我正在使用 SQLAlchemy==1.0.9 和 Flask-SQLAlchemy==2.1 在我的 Flask 应用程序中并想连接到一个 sqlite 数据库。
我得到了错误
TypeError: Invalid argument(s) 'pool_size' sent to create_engine(), using configuration SQLiteDialect_pysqlite/NullPool/Engine.
因为 flask_sqlalchemy 总是尝试使用 pool_size 参数创建引擎。
据我了解,参数 pool_size 不允许作为 SQLAlchemy 中 DefaultEngineStrategy 的参数。
有人知道这个问题的解决方法吗?
【问题讨论】:
我无法在我的机器上使用您指定的确切库版本和 Flask SQLAlchemy 站点上的 MCVE 为 Python 2.7 或 Python 3.5 重现此问题。一定是关于你是如何设置它的,但你没有显示任何代码。 【参考方案1】:我通过添加两个 Flask 配置参数在我的 Flask/SQLALchemy/SQLite 单元测试中解决了这个问题:
app.config.update(
'SQLALCHEMY_POOL_SIZE': None,
'SQLALCHEMY_POOL_TIMEOUT': None
)
【讨论】:
【参考方案2】:终于找到了:有同事在Config Base Class中引入了config param SQLALCHEMY_POOL_SIZE来配合mysql使用。
不过,如果 flask_sqlalchemy 或 sqlalchemy 会忽略该参数而不是抛出错误,那就太好了。
我为 flask_sqlalchemy 项目创建了一张票: https://github.com/mitsuhiko/flask-sqlalchemy/issues/426
【讨论】:
以上是关于类型错误:使用 flask_sqlalchemy 时发送到 create_engine() 的参数“pool_size”无效的主要内容,如果未能解决你的问题,请参考以下文章
ModuleNotFoundError:没有名为“flask_sqlalchemy”的模块
如何在 flask_sqlalchemy 中查询 ScalarListType