2024-09-24 02:14:21 发布
网友
我最近发现FTS5扩展已经发布。 检查我的应用程序是否可以在用户系统上使用它的最佳方法是什么? 只需python3版本检查,或sqlite3.sqlite_版本检查根据release page??还是别的什么?在
您链接到的文档提到FTS5在默认情况下是禁用的。编译SQLite时启用了吗?在
一种快速了解的方法是使用^{} ORM:
from playhouse.sqlite_ext import FTS5Model FTS5Model.fts5_installed()
如果您可以使用FTS5,上面的将返回True。您可以使用pip install peewee安装peewee。在
True
pip install peewee
peewee
您还可以使用apsw包装器,它includes FTS5 by default since version 3.11.0-r1。请参阅build instructions并使用 enable-all-extensions标志。apsw包装使用amalgamation。在
apsw
enable-all-extensions
编辑: 下面是来自^{} source的代码,演示了如何做到这一点:
/这是之前编辑的专栏文章,但我把它移到了这里以保持问题的清晰
所以这感觉好像可以用,在问题here中找到了
import sqlite3 con = sqlite3.connect(':memory:') cur = con.cursor() cur.execute('pragma compile_options;') available_pragmas = cur.fetchall() con.close() print(available_pragmas) if ('ENABLE_FTS5',) in available_pragmas: print('YES') else: print('NO')
但奇怪的是,我在几个虚拟机上运行它,没有一个虚拟机启用了fts4,但我却乐此不疲地使用它。。。也许它的fts3/fts4相当相同,或者可能就是完全错了。在
/编辑 从文档中
Note that enabling FTS3 also makes FTS4 available. There is not a separate SQLITE_ENABLE_FTS4 compile-time option. A build of SQLite either supports both FTS3 and FTS4 or it supports neither.
您链接到的文档提到FTS5在默认情况下是禁用的。编译SQLite时启用了吗?在
一种快速了解的方法是使用^{} ORM :
如果您可以使用FTS5,上面的将返回
True
。您可以使用pip install peewee
安装peewee
。在您还可以使用
apsw
包装器,它includes FTS5 by default since version 3.11.0-r1。请参阅build instructions并使用enable-all-extensions
标志。apsw
包装使用amalgamation。在编辑: 下面是来自^{} source 的代码,演示了如何做到这一点:
^{pr2}$/这是之前编辑的专栏文章,但我把它移到了这里以保持问题的清晰
所以这感觉好像可以用,在问题here中找到了
但奇怪的是,我在几个虚拟机上运行它,没有一个虚拟机启用了fts4,但我却乐此不疲地使用它。。。也许它的fts3/fts4相当相同,或者可能就是完全错了。在
/编辑
从文档中
相关问题 更多 >
编程相关推荐