重要提醒:本指南基于生产环境安全原则,严格遵循"不重置数据库"的最高准则
如果你在使用agent并且使用prisma开发,那么请你一定要注意prisma的命令安全性,已经第二次重置我的dev环境的数据库了,大无语,推荐claude code公益站

🟢 安全命令(不会清空数据库)
1. 代码生成类命令
| 命令 | 安全级别 | 作用 | 说明 | 
|---|---|---|---|
npx prisma generate | 
✅ 完全安全 | 生成 Prisma Client 代码 | 只生成 TypeScript 类型,不碰数据库 | 
npx prisma format | 
✅ 完全安全 | 格式化 schema.prisma 文件 | 纯文件操作,不涉及数据库 | 
2. 数据库同步类命令
| 命令 | 安全级别 | 作用 | 说明 | 
|---|---|---|---|
npx prisma db push | 
✅ 安全 | 同步数据库结构 | 只添加/修改表结构,不删除数据 | 
npx prisma migrate dev | 
✅ 安全 | 创建和应用迁移 | 创建迁移文件并应用到开发环境 | 
npx prisma migrate deploy | 
✅ 安全 | 应用迁移到生产环境 | 只应用已创建的迁移文件 | 
3. 数据查看类命令
| 命令 | 安全级别 | 作用 | 说明 | 
|---|---|---|---|
npx prisma studio | 
✅ 只读安全 | 数据库可视化界面 | 只查看数据,不修改任何内容 | 
npx prisma db seed | 
✅ 安全 | 执行种子数据 | 只插入数据,不删除现有数据 | 
4. 状态检查类命令
| 命令 | 安全级别 | 作用 | 说明 | 
|---|---|---|---|
npx prisma migrate status | 
✅ 只读安全 | 检查迁移状态 | 只查看状态,不执行任何操作 | 
npx prisma db pull | 
✅ 只读安全 | 从数据库拉取结构 | 只读取数据库结构,不修改 | 
🔴 危险命令(会清空数据库)
1. 重置类命令
| 命令 | 危险级别 | 作用 | 后果 | 
|---|---|---|---|
npx prisma migrate reset | 
❌ 极度危险 | 重置数据库并重新应用迁移 | 完全清空数据库 | 
npx prisma db push --force-reset | 
❌ 极度危险 | 强制重置数据库结构 | 完全清空数据库 | 
2. 删除类命令
| 命令 | 危险级别 | 作用 | 后果 | 
|---|---|---|---|
npx prisma migrate resolve --rolled-back <migration> | 
❌ 危险 | 回滚特定迁移 | 可能丢失数据 | 
npx prisma db execute --stdin | 
⚠️ 需谨慎 | 执行自定义 SQL | 取决于 SQL 内容 | 
🟡 需谨慎使用的命令
1. 数据操作类
| 命令 | 谨慎级别 | 作用 | 注意事项 | 
|---|---|---|---|
npx prisma db execute | 
⚠️ 需谨慎 | 执行原始 SQL | 取决于 SQL 内容,可能删除数据 | 
npx prisma migrate resolve | 
⚠️ 需谨慎 | 解决迁移冲突 | 可能影响数据完整性 | 
📋 生产环境最佳实践
✅ 推荐操作流程
- 开发环境 :使用 
npx prisma migrate dev创建迁移 - 测试环境 :使用 
npx prisma migrate deploy应用迁移 - 生产环境 :使用 
npx prisma migrate deploy应用迁移 - 代码生成 :使用 
npx prisma generate更新客户端 
❌ 禁止操作
- 绝对禁止 :在生产环境使用任何 
reset命令 - 绝对禁止 :使用 
--force-reset参数 - 绝对禁止:执行可能删除数据的 SQL 语句
 
🛡️ 安全防护措施
1. 环境变量保护
            
            
              bash
              
              
            
          
          # 生产环境设置
NODE_ENV=production
DATABASE_URL="mysql://prod_user:${PROD_DB_PASS}@prod.mysql.internal:3306/cps_pro"
        2. 备份策略
- 自动备份:生产环境数据库自动备份
 - 迁移前备份:执行迁移前手动备份
 - 回滚准备:准备回滚方案
 
3. 权限控制
- 生产环境:限制数据库操作权限
 - 开发环境:使用只读权限进行测试
 - 代码审查:所有数据库操作需要代码审查
 
🚨 紧急情况处理
如果误执行了危险命令
- 立即停止:停止所有数据库操作
 - 检查备份:查看是否有可用备份
 - 联系DBA:联系数据库管理员
 - 数据恢复:从备份恢复数据
 
预防措施
- 命令别名:为危险命令设置别名提醒
 - 环境检查:执行前检查当前环境
 - 二次确认:重要操作需要二次确认
 
📚 常用安全命令组合
开发环境
            
            
              bash
              
              
            
          
          # 1. 创建迁移
npx prisma migrate dev --name add_user_phone
# 2. 生成客户端
npx prisma generate
# 3. 查看状态
npx prisma migrate status
        生产环境
            
            
              bash
              
              
            
          
          # 1. 应用迁移
npx prisma migrate deploy
# 2. 生成客户端
npx prisma generate
# 3. 检查状态
npx prisma migrate status
        ⚠️ 重要提醒
- 永远不要 在生产环境使用 
reset命令 - 永远不要 使用 
--force-reset参数 - 永远不要在没有备份的情况下执行危险操作
 - 永远遵循"不重置数据库"的最高安全准则