升级 Wagtail 后如何解决 fts5 错误

How can I resolve fts5 error after I upgraded Wagtail

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

当我 运行 manage.py 迁移时 我得到一个错误

django.db.utils.OperationalError: no such module: 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

失败发生在最后一个

问题出在 wagtail

我从网站 wagtail 包中删除了 migrations 文件夹,运行 makemigrationsmigrate。现在有效

这是不提供 fts5 扩展的 sqlite 版本的兼容性问题,现已在 Wagtail 2.15.2.[ 中修复=15=]

(旧资料,留作参考:)

这是一个未解决的 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?