You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swift Package Manager中为SQLite.swift开启FTS5支持

解决SPM构建项目中SQLite.swift启用FTS5支持的问题

SQLite.swift官方支持通过SPM启用FTS5扩展,具体实现步骤如下:

1. 修改Package.swift的依赖配置

在项目的Package.swift中,将原来引用的默认SQLite产品替换为带FTS5支持的SQLiteFTS5产品:

修改前的target依赖示例:

.target(
    name: "YourTargetName",
    dependencies: [.product(name: "SQLite", package: "SQLite.swift")]
),

修改后的target依赖:

.target(
    name: "YourTargetName",
    dependencies: [.product(name: "SQLiteFTS5", package: "SQLite.swift")]
),

根package的dependencies部分无需修改,保持原有配置即可:

let package = Package(
    // ...其他配置
    dependencies: [
        .package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.14.1")
    ],
    // ...其他配置
)

2. 代码中使用FTS5功能

配置完成后,即可正常使用SQLite.swift的FTS5相关API,比如创建FTS5虚拟表:

import SQLite

let db = try Connection("/path/to/db.sqlite3")
let documents = Table("documents")
let id = Expression<Int64>("id")
let content = Expression<String>("content")

try db.run(documents.create(temporary: false, ifNotExists: true) { t in
    t.column(id, primaryKey: true)
    t.column(content)
    // 启用FTS5
    t.virtualTable(.fts5)
})

补充说明

SQLite.swift的SPM包预定义了多个功能变体产品,除SQLiteFTS5外,还有SQLiteCipher(带加密支持)等,可根据需求选择对应产品引用。这些变体的定义可在SQLite.swift仓库的Package.swift文件中查看。

内容的提问来源于stack exchange,提问作者Jason Sperske

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:04:51