【问题标题】:TypeError: Invalid argument(s) 'pool_size' sent to create_engine() when using flask_sqlalchemy类型错误:使用 flask_sqlalchemy 时发送到 create_engine() 的参数“pool_size”无效
【发布时间】: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 重现此问题。一定是关于你是如何设置它的,但你没有显示任何代码。

标签: python sqlite sqlalchemy flask-sqlalchemy


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      相关资源
      最近更新 更多