206 lines
3.6 KiB
Markdown
206 lines
3.6 KiB
Markdown
|
|
# PromptForge 数据库设置指南
|
|||
|
|
|
|||
|
|
## 🗄️ 数据库配置
|
|||
|
|
|
|||
|
|
PromptForge 使用 **腾讯云数据库** 作为后端数据存储,支持完整的用户系统、模板管理和社区功能。
|
|||
|
|
|
|||
|
|
### 📋 当前配置
|
|||
|
|
|
|||
|
|
- **数据库类型**: MySQL
|
|||
|
|
- **云服务商**: 腾讯云
|
|||
|
|
- **连接地址**: `gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936`
|
|||
|
|
- **数据库名**: `pronode_db`
|
|||
|
|
- **用户名**: `root`
|
|||
|
|
|
|||
|
|
## 🚀 快速开始
|
|||
|
|
|
|||
|
|
### 1. 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 设置环境变量
|
|||
|
|
|
|||
|
|
创建 `.env.local` 文件:
|
|||
|
|
|
|||
|
|
```env
|
|||
|
|
# 数据库配置
|
|||
|
|
DATABASE_URL="mysql://root:!Rjb12191@gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com:24936/pronode_db?charset=utf8mb4"
|
|||
|
|
|
|||
|
|
# Next.js 配置
|
|||
|
|
NEXTAUTH_SECRET="your-secret-key-here"
|
|||
|
|
NEXTAUTH_URL="http://localhost:3000"
|
|||
|
|
|
|||
|
|
# 应用配置
|
|||
|
|
NODE_ENV="development"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 生成 Prisma 客户端
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run db:generate
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 推送数据库模式
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run db:push
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5. 初始化示例数据
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run db:seed
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6. 启动开发服务器
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📊 数据库结构
|
|||
|
|
|
|||
|
|
### 主要数据表
|
|||
|
|
|
|||
|
|
1. **users** - 用户信息
|
|||
|
|
2. **templates** - 提示词模板
|
|||
|
|
3. **favorites** - 用户收藏
|
|||
|
|
4. **comments** - 模板评论
|
|||
|
|
5. **tests** - 测试记录
|
|||
|
|
6. **system_configs** - 系统配置
|
|||
|
|
|
|||
|
|
### 表关系
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
User (1) ←→ (N) Template
|
|||
|
|
User (1) ←→ (N) Favorite
|
|||
|
|
User (1) ←→ (N) Comment
|
|||
|
|
Template (1) ←→ (N) Test
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🛠️ 数据库管理命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 生成 Prisma 客户端
|
|||
|
|
npm run db:generate
|
|||
|
|
|
|||
|
|
# 推送模式到数据库
|
|||
|
|
npm run db:push
|
|||
|
|
|
|||
|
|
# 创建迁移文件
|
|||
|
|
npm run db:migrate
|
|||
|
|
|
|||
|
|
# 打开 Prisma Studio(数据库管理界面)
|
|||
|
|
npm run db:studio
|
|||
|
|
|
|||
|
|
# 初始化示例数据
|
|||
|
|
npm run db:seed
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔧 开发工具
|
|||
|
|
|
|||
|
|
### Prisma Studio
|
|||
|
|
|
|||
|
|
Prisma Studio 是一个可视化的数据库管理工具:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run db:studio
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
访问 `http://localhost:5555` 查看数据库内容。
|
|||
|
|
|
|||
|
|
### 数据库连接测试
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
import { testDatabaseConnection } from '@/lib/database'
|
|||
|
|
|
|||
|
|
// 测试连接
|
|||
|
|
const isConnected = await testDatabaseConnection()
|
|||
|
|
console.log('数据库连接状态:', isConnected)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔒 安全配置
|
|||
|
|
|
|||
|
|
### 环境变量
|
|||
|
|
|
|||
|
|
- 生产环境请使用环境变量存储敏感信息
|
|||
|
|
- 不要在代码中硬编码数据库密码
|
|||
|
|
- 定期更换数据库密码
|
|||
|
|
|
|||
|
|
### 访问控制
|
|||
|
|
|
|||
|
|
- 限制数据库访问IP
|
|||
|
|
- 使用最小权限原则
|
|||
|
|
- 定期备份数据
|
|||
|
|
|
|||
|
|
## 📈 性能优化
|
|||
|
|
|
|||
|
|
### 索引优化
|
|||
|
|
|
|||
|
|
```sql
|
|||
|
|
-- 为常用查询添加索引
|
|||
|
|
CREATE INDEX idx_templates_category ON templates(category);
|
|||
|
|
CREATE INDEX idx_templates_author ON templates(authorId);
|
|||
|
|
CREATE INDEX idx_templates_public ON templates(isPublic);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 连接池配置
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
const prisma = new PrismaClient({
|
|||
|
|
datasources: {
|
|||
|
|
db: {
|
|||
|
|
url: databaseUrl,
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
// 连接池配置
|
|||
|
|
log: ['query', 'error', 'warn'],
|
|||
|
|
})
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🚨 故障排除
|
|||
|
|
|
|||
|
|
### 常见问题
|
|||
|
|
|
|||
|
|
1. **连接超时**
|
|||
|
|
- 检查网络连接
|
|||
|
|
- 验证数据库地址和端口
|
|||
|
|
- 确认防火墙设置
|
|||
|
|
|
|||
|
|
2. **认证失败**
|
|||
|
|
- 验证用户名和密码
|
|||
|
|
- 检查用户权限
|
|||
|
|
- 确认数据库存在
|
|||
|
|
|
|||
|
|
3. **模式同步失败**
|
|||
|
|
- 检查数据库权限
|
|||
|
|
- 验证表结构
|
|||
|
|
- 查看错误日志
|
|||
|
|
|
|||
|
|
### 日志查看
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 查看 Prisma 日志
|
|||
|
|
npm run db:studio
|
|||
|
|
|
|||
|
|
# 查看应用日志
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📚 相关文档
|
|||
|
|
|
|||
|
|
- [Prisma 官方文档](https://www.prisma.io/docs)
|
|||
|
|
- [腾讯云数据库文档](https://cloud.tencent.com/document/product/236)
|
|||
|
|
- [Next.js 数据库集成](https://nextjs.org/docs/app/building-your-application/data-fetching)
|
|||
|
|
|
|||
|
|
## 🤝 支持
|
|||
|
|
|
|||
|
|
如果遇到数据库相关问题,请:
|
|||
|
|
|
|||
|
|
1. 查看错误日志
|
|||
|
|
2. 检查网络连接
|
|||
|
|
3. 验证配置信息
|
|||
|
|
4. 联系技术支持
|