数据迁移与扩展
什么时候该离开 JSON 库
诚实回答:
- 单表记录 > 10 万条;
- 需要多实例部署;
- 需要事务/复杂查询(JOIN、聚合报表);
- 团队多人协作开发。
出现任意一条,就该迁移了。这是成长问题,不是缺陷。
迁移到 SQLite(推荐第一步)
数据模型是扁平集合,天然映射 SQL 表。思路:
- 用
better-sqlite3(唯一新增依赖)替换db.js内部实现; - 保持
db.insert/find/findOne/update/remove方法签名不变; - 业务代码一行不用改。
迁移到 PostgreSQL
同上,把 db.js 换成 pg 驱动实现。集合 → 表、find(predicate) → SQL WHERE。迁移脚本:
# 导出 JSON → SQL 的一次性脚本(docs-zh/migrate-export.js)
node docs-zh/migrate-export.js > dump.sql
多实例部署
- 数据库换成 PostgreSQL(托管或自建);
- 限流改为 nginx
limit_req或网关层; - 会话表已在数据库中,天然可共享 —— 无需 Redis。
路线图建议
- 第一单收入:JSON 库 + 单服务器 ✅(现在)
- 月入 ¥1 万:迁移 SQLite + 每日备份
- 月入 ¥5 万+:PostgreSQL + 多实例
架构跟着钱走,而不是跟着焦虑走。