xiaso-flnxi-website/DATABASE_DEPLOY_SUMMARY.md
Your Name b1eab32c75 初始提交: FLNXI电商素材系统官方网站
- Next.js 项目框架
- 完整的认证系统集成
- 数据库配置和部署脚本
- 产品价格体系和文档
- Docker 部署配置
2025-12-13 21:38:32 +08:00

322 lines
6.3 KiB
Markdown
Raw Permalink 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.

# 🎉 PostgreSQL 数据库部署方案总结
## 📦 已创建的文件
| 文件 | 说明 |
|------|------|
| `DATABASE_SETUP_GUIDE.md` | 详细的数据库配置指南(手动操作) |
| `one-click-database-setup.sh` | 一键自动化部署脚本(推荐) |
| `deploy-database.sh` | Docker完整部署脚本 |
| `setup-existing-postgres.sh` | 使用现有PostgreSQL配置脚本 |
| `DATABASE_CONFIG.md` | 数据库连接信息(运行后生成) |
---
## 🚀 推荐:一键部署(最简单)
### 运行命令
```bash
cd /Users/lanmu/Desktop/xiaso
bash one-click-database-setup.sh
```
### 这个脚本会自动完成:
1. ✅ 检查并安装 sshpass
2. ✅ 连接服务器
3. ✅ 创建 Docker Compose 配置
4. ✅ 启动 PostgreSQL 容器(端口5433)
5. ✅ 创建 `flnxi_db` 数据库
6. ✅ 创建 `users` 表
7. ✅ 配置环境变量
8. ✅ 验证连接
**预计时间**: 3-5分钟
---
## 📊 数据库配置信息
部署完成后,数据库信息如下:
```
容器名称: flnxi-postgres
数据库名: flnxi_db
用户名: flnxi_user
密码: Flnxi@2025!SecurePassword
端口: 5433 (避免与系统PostgreSQL的5432冲突)
```
**连接字符串**:
```
postgresql://flnxi_user:Flnxi@2025!SecurePassword@localhost:5433/flnxi_db?schema=public
```
---
## 🗄️ 数据库表结构
### users 表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | SERIAL | 主键,自增 |
| name | VARCHAR(255) | 用户名 |
| email | VARCHAR(255) | 邮箱(唯一) |
| password | VARCHAR(255) | 密码(将使用bcrypt加密) |
| email_verified | BOOLEAN | 邮箱是否验证,默认false |
| created_at | TIMESTAMP | 创建时间 |
| updated_at | TIMESTAMP | 更新时间 |
**索引**:
- `idx_users_email` - 邮箱索引(加速查询)
- `idx_users_created_at` - 创建时间索引
---
## 🔍 验证数据库
部署完成后,验证数据库是否正常:
### 方式1:在服务器上
```bash
ssh root@45.249.208.118
# 查看容器状态
docker ps | grep flnxi-postgres
# 连接数据库
docker exec -it flnxi-postgres psql -U flnxi_user -d flnxi_db
# 在psql中执行
\dt -- 查看表
\d users -- 查看表结构
SELECT * FROM users; -- 查看数据(目前为空)
\q -- 退出
```
### 方式2:从本地
```bash
sshpass -p "lxvhNYFZ4160" ssh root@45.249.208.118 \
"docker exec flnxi-postgres psql -U flnxi_user -d flnxi_db -c 'SELECT current_database();'"
```
---
## 📝 下一步操作
数据库配置完成后,需要更新代码来使用数据库:
### 1. 安装依赖
在本地项目中:
```bash
cd /Users/lanmu/Desktop/xiaso
# 安装 Prisma ORM (可选,简化数据库操作)
npm install @prisma/client
npm install -D prisma
# 安装 bcrypt (必需,用于密码加密)
npm install bcrypt
npm install --save-dev @types/bcrypt
# 安装 PostgreSQL 客户端 (如果不用Prisma)
npm install pg
npm install --save-dev @types/pg
```
### 2. 更新注册 API
文件:`app/api/auth/register/route.ts`
需要:
- 连接数据库
- 使用 bcrypt 加密密码
- 将用户数据存入数据库
### 3. 更新登录 API
文件:`app/api/auth/[...nextauth]/route.ts`
需要:
- 从数据库查询用户
- 使用 bcrypt 验证密码
### 4. 重新部署
```bash
# 上传更新的代码
# 重新构建 Docker
# 测试注册和登录功能
```
---
## 🛠️ 数据库管理
### 常用命令
```bash
# 连接服务器
ssh root@45.249.208.118
# 查看数据库状态
docker ps | grep flnxi-postgres
# 查看日志
docker logs flnxi-postgres
# 重启数据库
cd /opt/flnxi-website
docker-compose -f docker-compose-db.yml restart
# 停止数据库
docker-compose -f docker-compose-db.yml stop
# 启动数据库
docker-compose -f docker-compose-db.yml start
```
### 备份数据
```bash
# 在服务器上执行
docker exec flnxi-postgres pg_dump -U flnxi_user flnxi_db > backup_$(date +%Y%m%d).sql
# 或从本地执行
ssh root@45.249.208.118 \
"docker exec flnxi-postgres pg_dump -U flnxi_user flnxi_db" > backup_$(date +%Y%m%d).sql
```
### 恢复数据
```bash
# 在服务器上
cat backup_20250101.sql | docker exec -i flnxi-postgres psql -U flnxi_user -d flnxi_db
```
---
## ⚠️ 注意事项
1. **密码安全**
- 数据库密码已在脚本中设置
- 请勿将密码提交到 Git
- 生产环境建议更改密码
2. **数据备份**
- 建议每天备份数据库
- 保留至少7天的备份
3. **端口选择**
- 使用5433避免与系统PostgreSQL冲突
- 仅监听 localhost,外部无法访问
4. **容器管理**
- 设置了自动重启(unless-stopped)
- 服务器重启后自动恢复
---
## 🐛 故障排查
### 问题1:容器启动失败
```bash
# 查看日志
docker logs flnxi-postgres
# 常见原因:
# - 端口被占用:改用其他端口
# - 权限问题:检查Docker权限
# - 镜像拉取失败:重试或换镜像源
```
### 问题2:无法连接数据库
```bash
# 检查容器状态
docker ps | grep flnxi-postgres
# 测试连接
docker exec flnxi-postgres pg_isready -U flnxi_user
# 查看端口
netstat -tulpn | grep 5433
```
### 问题3:环境变量未生效
```bash
# 检查环境变量
cat /opt/flnxi-website/.env.local
# 确保包含 DATABASE_URL
# 重新部署应用使环境变量生效
```
---
## 📚 相关文档
- `DATABASE_SETUP_GUIDE.md` - 详细配置指南
- `AUTH_INTEGRATION_GUIDE.md` - 认证系统指南
- `SIGNUP_INTEGRATION_COMPLETE.md` - 注册功能文档
---
## ✅ 部署检查清单
运行 `one-click-database-setup.sh` 后,确认:
- [ ] PostgreSQL 容器正在运行
- [ ] users 表已创建
- [ ] 索引已创建
- [ ] 环境变量已配置(DATABASE_URL)
- [ ] 可以成功连接数据库
- [ ] 可以查询表结构
---
## 🎯 完整流程总结
```
1. 部署数据库
↓
bash one-click-database-setup.sh
↓
2. 验证数据库
↓
docker exec flnxi-postgres psql -U flnxi_user -d flnxi_db -c '\dt'
↓
3. 安装依赖
↓
npm install bcrypt @prisma/client
↓
4. 更新API代码
↓
修改 register/route.ts 和 [...nextauth]/route.ts
↓
5. 部署到服务器
↓
上传文件 → 重新构建 → 测试
↓
6. 测试功能
↓
注册新用户 → 登录 → 验证
```
---
**部署时间**: 2025-10-27
**预计耗时**: 10-15分钟
**难度**: 简单
🎉 **准备好了!现在运行 `bash one-click-database-setup.sh` 开始部署!**