SuperAPI AI 工具集

SQLite Database Expert

数据与分析

查看项目

更新于 10-16 07:20

技能介绍

用途:面向 Tauri/桌面应用的 SQLite 嵌入式数据库开发指导,强调安全、可靠与性能。资料标注风险等级为 MEDIUM,原因是本地存储用户数据、存在 SQL 注入风险,迁移管理不当可能丢数据。

主要能力:一是安全 SQL 模式,全部使用参数化查询(? 位置参数或 :name 命名参数),禁止拼接用户输入;动态列名/表名必须走白名单;错误信息不得泄露数据库内部细节。二是数据库迁移,要求带版本控制和回滚能力。三是 FTS5 全文搜索,使用 content= 外部内容表配合触发器同步,查询用 MATCH 与 rank 排序,可用 highlight 生成摘要。四是性能优化,包括 WAL 模式、预编译语句、批量操作与合理索引。五是 Rust/Tauri 集成,使用 rusqlite、sea-query、r2d2 连接池。

核心原则:测试先行(TDD),用内存数据库加速测试;连接开启 PRAGMA foreign_keys = ON;相关操作包在事务中保证原子性;迁移必须版本化并可回滚。

推荐依赖(Cargo.toml): rusqlite = { version = "0.31", features = ["bundled", "backup", "functions"] } sea-query = "0.30" sea-query-rusqlite = "0.5" r2d2 = "0.8" r2d2_sqlite = "0.24"

初始化连接时执行:PRAGMA foreign_keys = ON、journal_mode = WAL、synchronous = NORMAL 等。性能要点包括:WAL 模式提升并发读写、executemany 批量插入替代逐行提交、连接池复用连接、为 WHERE/JOIN/ORDER BY 列建索引(含覆盖索引与部分索引)、定期 PRAGMA optimize 并在空闲期按需 VACUUM。

安全映射:OWASP A03 注入(关键)、A04 不安全设计、A05 配置错误;生产数据库文件权限建议 600。

适用场景:桌面应用本地持久化、离线优先存储、全文搜索、配置存储、缓存与临时数据。

必要用法:实现任何数据库操作前需按触发条件阅读 references/advanced-patterns.md(迁移、FTS5、CTE/窗口函数、连接池或 WAL、性能优化)与 references/security-examples.md(涉及用户输入的 SQL、参数化查询、加密考虑、敏感数据、输入校验)。测试可运行 pytest tests/test_*_repository.py -v --cov=app/repositories。

限制与暂未提供:资料未提供具体收费、价格、平台支持范围、独立基准测试数据与效果数据。版本建议为 SQLite 3.45+(最低 3.35)、rusqlite 0.31+(最低 0.29)、sea-query 0.30+(最低 0.28)、r2d2 0.8+。无官方文档说明,以上均据技能内容整理。