依赖安装
根据官方文档,添加 tauri-plugin-sql 依赖
插件底层查询引擎使用的是 sqlx
, 如果你需要在 Rust 中使用 Sqlite, 也需要添加这个依赖。
安装 @tauri-apps/plugin-sql
, 用于在 JavaScript 中使用 Sql
数据库
初始化数据库
推荐使用 Sqlite migrations
来管理数据库变动
Migrations
- Migrations 是数据库架构演进的管理工具
- 它允许你以版本化的方式管理数据库结构的变更
- 每个 migration 都有一个版本号、描述和对应的 SQL 语句
创建 Migrations
新建 migrations
目录,用于存放数据库变动的 SQL 文件 ,初始化数据库操作,我们新建 migrations/v1_init.sql
, 例如下面的代码
使用 Migrations 初始化
.add_migrations
的第一个参数是数据库的名称,一般为 sqlite:[name].db
的格式
设置 tauri.conf.json
这段代码会在插件初始时自动执行 v1_init.sql
, 创建两张数据表,同时会创建一个 _sqlx_migrations
表,在其中记录已经执行了哪个版本的 migration
。
使用 Migrations 进行更新
如果后续我们需要对表进行一些改动,例如新增字段或者新增数据表,需要再新创建一个 Migration
,version
设置为2(或者其他,需要是唯一值), 在 Migration
中
添加改动的 sql
代码,例如需要在表中新增 count
字段, 在 migrations
目录下新建 v2_add_count.sql
然后在 Migration
中添加
这样当一个应用发布后,用户启动应用时,如果是老用户,则会自动执行 v2_add_count.sql
,更新数据库结构,因为 _sqlx_migrations
表中已经记录了用户执行过哪些 migration
。
对于新安装的用户,由于没有对应的执行记录,所以会先执行 version: 1
,在执行 version: 2
的 Migration
, 这样确保了老用户的数据库升级而不会影响到现有数据
验证数据库是否创建成功
在完成上面的步骤后,重新执行 tauri
运行, 如果没有报错,则说明大概率是成功了,此时我们需要验证是否真的成功了,首先需要找到我们创建的 sqlite:xgist.db
的位置
macOs上
在 macOs
系统上,db
文件的位置在
/Users/[name]/Library/Application\ Support/[app-name]/[db-name].db
- [app-name]:
tauri.conf.json
中的 identifier
字段
- [db-name]: 你所定义的
Sqlite
数据库名称
找到 db
文件位置之后你就可以通过一些工具来查看了
Sqlite3 命令行工具
安装 Sqlite3
进入 sqlite
数据库环境
成功后执行 .table
查看数据库中的表
第三方 GUI 工具
选择你喜欢的使用第三方 GUI
工具能更清晰的查看数据库内容,以 TablePlus
为例,点击新建连接,选择 Sqlite
添加自定义 Name
, 将上面我们找到的db
路径复制到 Database Path
中,点击 Connect
就可以了