SuperAPI AI 工具集

tauri-impl-database

数据与分析

查看项目

更新于 10-16 06:18

技能介绍

用途:为 Tauri 2 应用添加持久化存储,按数据类型选择方案。简单键值(设置、偏好、缓存)用 tauri-plugin-store;关系型数据且由前端直接写 SQL 用 tauri-plugin-sql;需要连接池、复杂事务、sqlx/diesel 等后端控制时用 Rust 自定义命令。加密存储指向 tauri-plugin-stronghold,属范围外。

主要能力:store 支持 load/LazyStore、set/get/has/keys/values/entries/delete/clear/save/reload/reset,autoSave 可自动落盘;sql 插件支持在 Rust 侧定义 Migration 并在首次连接时执行,前端用 Database.load('sqlite:app.db') 执行参数化 execute/select;自定义方案用 sqlx 建 SqlitePool,在 setup() 中初始化并 manage 为状态,通过 #[tauri::command] 暴露增删改查。

使用方式:Rust 侧在 Cargo.toml 添加 tauri-plugin-store = "2" 或 tauri-plugin-sql = { version = "2", features = ["sqlite"] },在 Builder 中注册插件;前端安装 @tauri-apps/plugin-store 或 @tauri-apps/plugin-sql;在 capabilities/default.json 添加 store:default 或 sql:default 权限。自定义方案需自行定义命令权限。

限制与规则:get 对缺失键返回 undefined,必须处理;store 不适合大二进制数据;autoSave 为 false 时必须 save,否则退出丢数据;SQL 必须用 $1、$2 参数化查询,禁止拼接用户输入;Database.load 用 sqlite: 相对名而非绝对路径;组件卸载时关闭连接;数据库操作使用异步命令,避免阻塞主线程;连接池不要再用 Arc 包裹。

适用场景:桌面端设置持久化、本地 SQLite 数据管理、需要后端掌控数据层的 Tauri 2 应用。具体版本兼容与平台细节以官方文档为准。