gongxiangp2/DATABASE_MIGRATION_REPORT.md
chenpei d17f6df2c7 feat: 部门管理和文件上传优化
新功能:
1. 部门管理功能
   - 管理员可在系统设置中添加/删除部门
   - 用户注册时从下拉框选择部门
   - 新增Department数据库表和API

2. 文件上传优化
   - 支持直接上传源文件(.max/.psd/.ai/.cad/.dwg/.c4d)
   - 自动识别文件类型并设置素材类型
   - 压缩包需手动选择类型
   - 优化拖拽上传体验

数据库变更:
- 新增departments表
- User表新增department字段
2025-10-26 14:06:19 +08:00

4.8 KiB
Raw Blame History

数据库迁移完成报告

📊 迁移概况

迁移时间: 2025-10-26
迁移类型: 云数据库 → 本地NAS数据库
迁移状态: ✅ 成功完成


🎯 迁移详情

1. 数据库连接信息

迁移前(云数据库)

Host: 149.88.95.87:5432
Database: lobechat
User: postgres
Status: 已废弃(数据已清空)

迁移后(本地NAS)

Host: 192.168.58.20:5432
Database: lobechat
User: gongxiangpan
Status: ✅ 正常运行

2. Docker Compose配置更新

已更新以下环境变量:

  • DATABASE_URL: postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat
  • PGVECTOR_DB_URL: postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat

配置文件位置: /mnt/PoolOne/apps/youyidian-3d/docker-compose.yml


📋 数据库表结构

当前数据统计

表名 记录数 说明
users 1 管理员用户(admin)
categories 1 默认分类(默认店铺)
scenes 1 默认场景(默认场景)
materials 0 素材数据(待用户上传)
material_likes 0 点赞记录
system_settings 1 系统设置(已配置)

新增字段

materials表

  • ✅ materialType: 素材类型字段(支持:3DMAX/PSD/AI/CAD/C4D/其他)
    • 默认值: '3DMAX'
    • 索引: materials_materialType_idx

system_settings表(新建)


👤 管理员账户信息

默认管理员

用户名: admin
邮箱: admin
密码: admin123456
角色: ADMIN
状态: 激活
下载权限: 是

⚠️ 重要提示: 请登录后立即修改管理员密码!


📁 文件存储信息

本地文件

  • 位置: /mnt/PoolOne/apps/youyidian-3d/uploads/
  • 现有文件: 325个素材压缩包(zip/rar/7z)
  • 状态: 文件完整,但未导入数据库

S3存储(MinIO)

  • Bucket: jsxiangche
  • Endpoint: https://s3.1080p.hk
  • 预览图: 334个(webp格式)
  • 状态: 正常可访问

🔧 数据恢复方案

由于Prisma客户端兼容性问题,采用以下方案:

方案:用户重新上传

优点:

  • 数据准确性高
  • 可以重新审核和分类
  • 用户可以补充完整的元数据(SPU、分类、场景等)

步骤:

  1. ✅ 数据库schema已迁移完成
  2. ✅ 管理员账户已创建
  3. ✅ 默认分类和场景已创建
  4. ✅ 系统设置已配置
  5. 📝 等待用户通过网站上传素材

访问信息


✅ 验证清单

  • 数据库连接已切换到本地NAS
  • users表已创建并包含admin用户
  • categories表已创建并包含默认分类
  • scenes表已创建并包含默认场景
  • materials表已更新(添加materialType字段)
  • system_settings表已创建并配置
  • Docker容器已重启并正常运行
  • 所有表索引已创建
  • 外键约束已配置

📝 后续操作建议

1. 立即执行

  • 登录管理后台,修改admin密码
  • 测试上传功能是否正常
  • 添加常用的分类和场景

2. 数据管理

  • 通知用户重新上传素材
  • 设置素材审核流程
  • 配置存储空间监控

3. 系统优化

  • 配置自动备份策略
  • 设置定期数据清理任务
  • 优化数据库性能参数

🛠 技术支持

数据库操作命令

连接数据库:

ssh -p 2322 root@180.97.221.140
docker run --rm -it postgres:15-alpine psql postgresql://gongxiangpan:gongxiangpan123@192.168.58.20:5432/lobechat

查看统计:

SELECT COUNT(*) FROM materials;
SELECT COUNT(*) FROM users;
SELECT * FROM system_settings;

重启应用:

cd /mnt/PoolOne/apps/youyidian-3d
docker compose restart

📌 注意事项

  1. 旧数据无法自动恢复: 由于云数据库已清空,无法恢复原有的325个素材的元数据(分类、场景、SPU等)
  2. 文件仍然存在: 本地的325个压缩包文件和334个S3预览图都完整保存
  3. 需要重新上传: 用户需要通过网站上传功能重新导入素材,以便正确关联元数据
  4. 密码安全: 当前使用的是临时密码hash方式,建议登录后立即修改密码

🎉 迁移成功!

数据库已成功从云端迁移到本地NAS,所有表结构完整,系统可以正常使用。 现在可以开始让用户重新上传素材了!