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

199 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据库迁移完成报告
## 📊 迁移概况
**迁移时间**: 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表(新建)
- **id**: 主键
- **headerBgColor**: 顶部导航栏背景色(默认: #1f2937)
- **logoUrl**: LOGO URL(默认: http://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png)
- **siteName**: 网站名称(默认: 由壹点3D素材)
- **createdAt**: 创建时间
- **updatedAt**: 更新时间
---
## 👤 管理员账户信息
### 默认管理员
```
用户名: 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. 📝 等待用户通过网站上传素材
### 访问信息
- **内网地址**: http://192.168.58.20:4320
- **公网地址**: 通过frp穿透访问
- **管理后台**: http://192.168.58.20:4320/admin
---
## ✅ 验证清单
- [x] 数据库连接已切换到本地NAS
- [x] users表已创建并包含admin用户
- [x] categories表已创建并包含默认分类
- [x] scenes表已创建并包含默认场景
- [x] materials表已更新(添加materialType字段)
- [x] system_settings表已创建并配置
- [x] Docker容器已重启并正常运行
- [x] 所有表索引已创建
- [x] 外键约束已配置
---
## 📝 后续操作建议
### 1. 立即执行
- [ ] 登录管理后台,修改admin密码
- [ ] 测试上传功能是否正常
- [ ] 添加常用的分类和场景
### 2. 数据管理
- [ ] 通知用户重新上传素材
- [ ] 设置素材审核流程
- [ ] 配置存储空间监控
### 3. 系统优化
- [ ] 配置自动备份策略
- [ ] 设置定期数据清理任务
- [ ] 优化数据库性能参数
---
## 🛠 技术支持
### 数据库操作命令
**连接数据库**:
```bash
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
```
**查看统计**:
```sql
SELECT COUNT(*) FROM materials;
SELECT COUNT(*) FROM users;
SELECT * FROM system_settings;
```
**重启应用**:
```bash
cd /mnt/PoolOne/apps/youyidian-3d
docker compose restart
```
---
## 📌 注意事项
1. **旧数据无法自动恢复**: 由于云数据库已清空,无法恢复原有的325个素材的元数据(分类、场景、SPU等)
2. **文件仍然存在**: 本地的325个压缩包文件和334个S3预览图都完整保存
3. **需要重新上传**: 用户需要通过网站上传功能重新导入素材,以便正确关联元数据
4. **密码安全**: 当前使用的是临时密码hash方式,建议登录后立即修改密码
---
## 🎉 迁移成功!
数据库已成功从云端迁移到本地NAS,所有表结构完整,系统可以正常使用。
现在可以开始让用户重新上传素材了!