Files
chinese-family-tree-2/INDEXEDDB_CLEANUP_FINAL.md
T
freedakgmail b25f4bea02 0.0.9.0
2025-11-24 16:07:24 +08:00

4.8 KiB
Raw Blame History

🧹 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. 功能测试

  • 头像上传
  • 头像显示
  • 照片墙上传
  • 照片墙显示
  • 成员列表
  • 家族树显示

📝 清理总结

已完成

  1. 移除所有图片相关的 IndexedDB 代码
  2. 移除 avatarImageId 字段定义
  3. 移除 avatarImageId API 验证
  4. 移除无用的 db 导入
  5. 简化头像加载逻辑

待执行(可选)

  1. 删除 lib/db.ts
  2. 删除 lib/activity-logger.ts
  3. 删除 lib/db-upgrade.ts
  4. 卸载 dexie 依赖

效果

  • 代码更简洁 - 减少 255+ 行
  • 依赖更少 - 移除 1 个包
  • 逻辑更清晰 - 无历史包袱
  • 维护更容易 - 统一使用服务器存储

🎉 结论

图片存储的 IndexedDB 代码已完全清理!

剩余的 IndexedDB 相关文件(lib/db.tslib/activity-logger.tslib/db-upgrade.ts)完全未被使用,可以安全删除。

建议执行完全清理,彻底移除 IndexedDB 和 Dexie 依赖。