4.8 KiB
4.8 KiB
🧹 IndexedDB 清理最终报告
✅ 已完全移除的 IndexedDB 功能
1. 图片存储(images 表)
- ✅
components/ui/image-upload.tsx- 移除 db.images 使用 - ✅
components/members/photo-gallery.tsx- 移除 db.images 使用 - ✅
components/ui/avatar-display.tsx- 移除 db.images 使用 - ✅
app/members/[id]/page.tsx- 移除 db.images 兼容代码 - ✅
components/tree/family-node.tsx- 移除 db.images 使用 - ✅
components/tree/d3-org-chart-flow.tsx- 移除 db 导入 - ✅
hooks/use-avatar-cache.ts- 移除 db.images 使用 - ✅
types/family.ts- 移除 avatarImageId 字段 - ✅
app/api/trees/[treeId]/members/route.ts- 移除 avatarImageId 验证
状态: ✅ 完全迁移到服务器文件系统
⚠️ 仍保留的 IndexedDB 功能
1. 活动日志(activityLogs 表)
文件: lib/activity-logger.ts
功能:
- 记录用户操作日志
- 查询历史活动
- 统计分析
状态: ❌ 未被使用(可以删除)
检查结果:
# 搜索导入
grep -r "activity-logger" --include="*.ts" --include="*.tsx"
# 结果:无任何导入
建议: 可以安全删除
2. 数据库升级工具
文件: lib/db-upgrade.ts
功能:
- 数据库版本升级
- 数据备份和恢复
状态: ❌ 未被使用(可以删除)
建议: 可以安全删除
3. IndexedDB 核心定义
文件: lib/db.ts
定义的表:
members- ❌ 未使用(已迁移到 Prisma)settings- ❌ 未使用(已迁移到 Prisma)images- ❌ 未使用(已迁移到服务器文件系统)activityLogs- ❌ 未使用
状态: ❌ 完全无用(可以删除)
🗑️ 建议删除的文件
完全无用的文件(3个)
# 1. IndexedDB 核心定义
rm lib/db.ts
# 2. 活动日志(未使用)
rm lib/activity-logger.ts
# 3. 数据库升级工具(未使用)
rm lib/db-upgrade.ts
删除后的影响
✅ 无影响 - 这些文件没有被任何地方导入或使用
📦 可以卸载的依赖
npm uninstall dexie
Dexie 是 IndexedDB 的封装库,删除上述文件后不再需要。
📊 清理前后对比
清理前
lib/
├── db.ts # 51 行 - IndexedDB 定义
├── db-upgrade.ts # 70 行 - 升级工具
├── activity-logger.ts # 134 行 - 活动日志
└── ...
依赖:
- dexie: ^3.x.x
清理后
lib/
└── ...
依赖:
- (移除 dexie)
减少代码: 255 行 减少依赖: 1 个
🎯 执行清理
方案 A:完全清理(推荐)
# 1. 删除文件
rm lib/db.ts
rm lib/activity-logger.ts
rm lib/db-upgrade.ts
# 2. 卸载依赖
npm uninstall dexie
# 3. 验证
npm run build
方案 B:保守清理
如果担心有遗漏,可以先注释掉文件内容,观察一段时间:
# 重命名为 .backup
mv lib/db.ts lib/db.ts.backup
mv lib/activity-logger.ts lib/activity-logger.ts.backup
mv lib/db-upgrade.ts lib/db-upgrade.ts.backup
# 运行测试
npm run build
npm run dev
# 确认无问题后再删除
✅ 验证清理结果
1. 搜索残留引用
# 搜索 db.images
grep -r "db\.images" --include="*.ts" --include="*.tsx"
# 预期:无结果
# 搜索 db.members
grep -r "db\.members" --include="*.ts" --include="*.tsx"
# 预期:无结果
# 搜索 db.settings
grep -r "db\.settings" --include="*.ts" --include="*.tsx"
# 预期:无结果
# 搜索 db.activityLogs
grep -r "db\.activityLogs" --include="*.ts" --include="*.tsx"
# 预期:无结果
# 搜索 avatarImageId
grep -r "avatarImageId" --include="*.ts" --include="*.tsx"
# 预期:无结果
2. 编译测试
npm run build
3. 功能测试
- 头像上传
- 头像显示
- 照片墙上传
- 照片墙显示
- 成员列表
- 家族树显示
📝 清理总结
已完成
- ✅ 移除所有图片相关的 IndexedDB 代码
- ✅ 移除 avatarImageId 字段定义
- ✅ 移除 avatarImageId API 验证
- ✅ 移除无用的 db 导入
- ✅ 简化头像加载逻辑
待执行(可选)
- ⏳ 删除
lib/db.ts - ⏳ 删除
lib/activity-logger.ts - ⏳ 删除
lib/db-upgrade.ts - ⏳ 卸载
dexie依赖
效果
- 代码更简洁 - 减少 255+ 行
- 依赖更少 - 移除 1 个包
- 逻辑更清晰 - 无历史包袱
- 维护更容易 - 统一使用服务器存储
🎉 结论
图片存储的 IndexedDB 代码已完全清理!
剩余的 IndexedDB 相关文件(lib/db.ts、lib/activity-logger.ts、lib/db-upgrade.ts)完全未被使用,可以安全删除。
建议执行完全清理,彻底移除 IndexedDB 和 Dexie 依赖。