【问题标题】:How can I resolve fts5 error after I upgraded Wagtail升级 Wagtail 后如何解决 fts5 错误
【发布时间】:2021-11-21 11:06:24
【问题描述】:

我已使用 Django 3.1.13 将 Wagtail 安装升级到 2.15.1

当我运行 manage.py migrate 时出现错误

django.db.utils.OperationalError:没有这样的模块:fts5

我已经搜索过,但找不到任何解决此问题的方法

有人可以帮忙吗?

这是发生错误时在django/db/backends/sqlite3/base.py中运行的代码

class SQLiteCursorWrapper(Database.Cursor):
    def execute(self, query, params=None):
        if params is None:
            return Database.Cursor.execute(self, query)

上线失败

            return Database.Cursor.execute(self, query)

query 的最后 3 个值是

 CREATE VIRTUAL TABLE wagtailsearch_indexentry_fts USING fts5(autocomplete, body, title)
 PRAGMA foreign_key_check
 PRAGMA foreign_keys = ON

失败发生在最后一个

【问题讨论】:

    标签: django wagtail fts5


    【解决方案1】:

    问题出在鹡鸰

    我从站点 wagtail 包中删除了 migrations 文件夹并运行了 makemigrationsmigrate。现在可以使用了

    【讨论】:

    • 这绝对不推荐。这将使升级到未来的 Wagtail 版本变得异常困难,因为您生成和应用的迁移与 Wagtail 的下一个版本附带的迁移不匹配。
    【解决方案2】:

    这是与不提供 fts5 扩展名的 sqlite 版本的兼容性问题,现已在 Wagtail 2.15.2 中修复。

    (旧资料,留作参考:)

    这是一个开放的 Wagtail 问题,目前正在 https://github.com/wagtail/wagtail/issues/7798 处理。

    现在,您需要确保系统上安装的 sqlite 版本带有 fts5 扩展名。对于 Mac 和 Windows,这很可能与 Python 安装程序捆绑在一起,所以这不是问题。对于 Linux,这取决于发行版 - Ubuntu 18.04 有,16.04 没有。有关如何升级的详细信息,请参阅How can I use the FTS5 extension with the sqlite3 python module with Python 3.7 on Ubuntu 16.04?

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 2022-01-24
      • 2019-11-24
      • 2018-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      相关资源
      最近更新 更多