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