【问题标题】:How to set SQLAlchemy dialect?如何设置 SQLAlchemy 方言?
【发布时间】:2019-03-03 08:24:00
【问题描述】:

如何告诉 SQLAlchemy 我想使用哪种方言?

上下文:

我想将我的类的一个属性存储为 JSON 对象,并使用 SQLAlchemy 对其运行查询。这是属性:

winning_team_ids = Column(mysql.JSON, nullable=False)

我在测试设置时收到以下错误:

AttributeError: 'SQLiteTypeCompiler' object has no attribute 'visit_JSON'

这似乎是因为 /sqlalchemy/dialects/sqlite/base 没有 visit_JSON 方法。但是,/sqlalchemy/dialects/mysql/base 确实有一个 visit_JSON 方法。所以我想用mysql的方言。

【问题讨论】:

  • 您是否尝试将 mysql 方言与 sqlite db 一起使用?
  • @benvc 我不确定 - 我知道我们使用 sqlite 进行单元测试,使用 mysql 从 devstacks 到生产。
  • 错误表明 sqlite 在你的 json 列上阻塞(它不支持 - 可能有扩展或其他东西,但我不确定)。

标签: python mysql json sqlite sqlalchemy


【解决方案1】:

您必须使用与您的数据库匹配的方言。如果你必须使用 SQLite,你可能需要等待 SQLAlchemy 1.3,它为它增加了对 JSON 的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2020-04-20
    相关资源
    最近更新 更多