| name | sqlite-skill |
| description | 用于平台中立的 SQLite 数据层设计与审查,包括 schema、SQL、migration、事务、索引、PRAGMA/WAL/FTS/JSON、同步持久化、备份恢复、limits 和安全。当用户明确提到 SQLite/sqlite,或需要判断本地关系型数据库是否适合 SQLite 时使用;不要用于未指定 SQLite 的 IndexedDB、localStorage、key-value storage 或服务端数据库任务。 |
SQLite Skill
意图
帮助 Agent 独立处理 SQLite 相关的数据层问题:数据库设计、SQL 编写、迁移、事务、索引、同步、性能、安全和可靠性。
本 skill 只负责 SQLite 与离线数据工程本身。如果业务项目还涉及具体框架、端平台、插件封装或 UI 工程,由用户主动指定或另行调用对应能力;本 skill 不主动耦合其他 skill。
如果用户明确指定要做 uni-app / UTS 的三端 SQLite 插件,可另行使用 sqlite-uniapp-uts 处理插件工程与平台 Adapter;本 skill 只提供 SQLite 数据层规则。
触发场景
- SQLite 建表、查询、索引、事务、迁移、
PRAGMA、EXPLAIN QUERY PLAN。
- 本地数据库、离线缓存、offline-first、同步队列、软删除、冲突处理。
- SQLite 性能、安全、SQL 注入、敏感数据、数据库文件、备份恢复、多账号隔离。
- 需要设计 DAO、Repository、LocalDatabase adapter、QueryBuilder、sync engine、migration runner、health check。
- 需要判断 SQLite 与 IndexedDB、WebSQL、localStorage、文件存储或服务端数据库的边界。
非目标
- 不负责具体业务框架的页面、组件、路由、构建、插件封装或平台 API 细节。
- 不默认任何运行端支持 SQLite;只给 SQLite 数据层方案与能力核查清单。
- 不把浏览器、移动端、桌面端、后端脚本、嵌入式设备混为同一运行环境。
- 不写完整 SQLite 教程;细节按需读取 references。
维护与复用约定
本 skill 遵循仓库 README 的通用规范:中文优先、自包含、渐进式披露、验证再交付。修改或分发本 skill 时读取 references/repository-usage.md;只复制/打包整个 skills/sqlite-skill/ 目录,不只复制 SKILL.md。
核心原则
- 先确认运行环境:SQLite CLI、Node、移动端 wrapper、桌面端、浏览器 WASM、后端脚本或其他宿主。
- 先确认 SQLite 版本、编译选项、wrapper 暴露能力、文件系统限制和测试环境。
- 先确认数据规模、读写频率、同步方式、账号/租户隔离、隐私等级和冲突策略。
- SQL 示例必须使用 SQLite 兼容语法;不确定宿主 API 时只给通用 SQL 与架构,并说明以具体 wrapper 文档为准。
- 外部输入必须参数化;动态表名、列名、排序字段必须白名单化。
- 离线功能必须同时考虑初始化、迁移、事务、同步队列、软删除、重试、冲突和状态恢复。
- SQLite 不是加密存储;敏感数据默认不明文落库。
PRAGMA foreign_keys = ON 需每个连接启用并查询确认;PRAGMA 拼错可能被静默忽略。
- 不把
INSERT OR REPLACE / REPLACE INTO 当安全 upsert;优先考虑 ON CONFLICT DO UPDATE 并确认 SQLite 版本。
- 不滥用
AUTOINCREMENT;先理解 INTEGER PRIMARY KEY、rowid、NULL、布尔值和类型亲和性。
- WAL、FTS5、JSON1/JSONB、SQLCipher、STRICT table、
RETURNING、backup API 不承诺在所有运行环境可用,必须检测版本/编译选项/wrapper 能力。
- 对跨宿主项目,只定义平台中立 Adapter 契约;具体平台 API、插件封装和条件编译由用户另行指定。
工作流
1. 运行环境与能力核查
读取 references/overview.md、references/runtime-boundaries.md、references/pragmas-and-diagnostics.md。
- 确认宿主环境、SQLite 版本、扩展支持和 wrapper API。
- 区分 SQLite、IndexedDB、WebSQL、key-value storage、文件存储、服务端 RDBMS。
- 确认数据库文件路径、沙盒/权限、备份、升级、低磁盘空间和崩溃恢复限制。
- 执行或规划能力探测:SQLite 版本、编译选项、关键 PRAGMA、扩展模块和 wrapper 限制。
2. Schema / 建表设计
读取 references/schema-design.md、references/data-types-and-affinity.md、references/constraints-and-indexes.md。
- 明确实体、字段、主键、唯一约束、外键、时间格式和生命周期。
- 离线同步场景区分本地 id、服务端 id、客户端幂等 key。
- 设计
sync_status、deleted_at、version、created_at、updated_at 等字段。
- 为高频
WHERE、JOIN、ORDER BY 字段添加索引。
- 输出
CREATE TABLE、CREATE INDEX 和迁移说明。
3. Adapter / DAO / SQL 编写与优化
读取 references/adapters-and-api-contracts.md、references/querybuilder-and-dao.md、references/sql-basics.md、references/performance.md。涉及全文搜索、JSON 或批处理时再读取 references/fts5-and-search.md、references/json-and-generated-columns.md、references/limits-and-batching.md。
- 判断 SQL 类型:DDL、DML、查询、事务或诊断。
- 需要跨宿主时,先给最小
LocalDatabase 契约,再实现 DAO / Repository。
- 使用参数绑定占位符,不拼接用户输入。
- 动态排序、列名和表名必须白名单化;QueryBuilder 只生成受控 SQL 片段。
- 对复杂查询说明索引、分页和查询计划。
- 批量写入必须放在事务中。
- 警惕
LIKE '%xxx%'、大偏移 OFFSET、未分页全表读。
4. 数据迁移
读取 references/migrations.md。
- 用
PRAGMA user_version 或 schema_migrations 管理版本。
- 从旧版本顺序升级到最新版,迁移放事务中。
- 复杂表结构变更使用建新表、复制、删旧表、重命名、重建索引模式。
- 覆盖新装建库、旧库升级、重复启动、迁移失败恢复。
5. 离线同步
读取 references/sync-patterns.md、references/common-recipes.md。
- 明确同步方向、同步粒度、幂等 key、软删除和冲突策略。
- 本地业务写入和 outbox/sync queue 状态更新放在同一事务。
- 网络恢复后先处理待上传,再拉取远端增量,避免覆盖本地未同步数据。
- 设计失败重试、重复提交、部分成功、崩溃恢复和用户可见状态。
6. 安全与可靠性
读取 references/security.md、references/transactions-and-concurrency.md、references/backup-and-restore.md、references/pitfalls.md。
- 参数化查询、防注入、动态标识符白名单、日志脱敏。
- 多用户/多租户数据隔离,退出登录和切换账号时清理敏感缓存。
- 需要加密时调研 SQLCipher、系统安全存储或宿主平台安全能力。
- 关注 SQLite 单写多读、WAL、锁等待、崩溃恢复和备份一致性。
References
| 场景 | 读取 |
|---|
| SQLite 总览 | references/overview.md |
| 运行环境边界 | references/runtime-boundaries.md |
| Adapter 与 API 契约 | references/adapters-and-api-contracts.md |
| 连接生命周期 | references/connection-lifecycle.md |
| Statement 与参数绑定 | references/statement-and-binding.md |
| 结果集映射 | references/result-set-mapping.md |
| 统一错误模型 | references/error-model.md |
| DAO / QueryBuilder | references/querybuilder-and-dao.md |
| PRAGMA 与诊断 | references/pragmas-and-diagnostics.md |
| SQL 基础 | references/sql-basics.md |
| 表结构设计 | references/schema-design.md |
| 数据类型 | references/data-types-and-affinity.md |
| 约束与索引 | references/constraints-and-indexes.md |
| 事务与并发 | references/transactions-and-concurrency.md |
| 备份与恢复 | references/backup-and-restore.md |
| 数据库迁移 | references/migrations.md |
| 性能优化 | references/performance.md |
| FTS5 与搜索 | references/fts5-and-search.md |
| JSON 与生成列 | references/json-and-generated-columns.md |
| Limits 与批处理 | references/limits-and-batching.md |
| 同步模式与冲突 | references/sync-patterns.md |
| 安全 | references/security.md |
| 常用模板 | references/common-recipes.md |
| 避坑 | references/pitfalls.md |
| 官方文档索引 | references/official-docs-map.md |
| 能力检测 | references/capability-detection.md |
| C API 与 wrapper 映射 | references/c-api-and-wrappers.md |
| sqlite3 CLI | references/cli.md |
| 错误码与诊断 | references/errors-and-diagnostics.md |
| 功能版本矩阵 | references/feature-matrix.md |
| 测试检查清单 | references/testing.md |
| 仓库复用与维护 | references/repository-usage.md |
交付检查清单