Prisma 命令安全指南

重要提醒:本指南基于生产环境安全原则,严格遵循"不重置数据库"的最高准则

如果你在使用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 ⚠️ 需谨慎 解决迁移冲突 可能影响数据完整性

📋 生产环境最佳实践

✅ 推荐操作流程

  1. 开发环境 :使用 npx prisma migrate dev 创建迁移
  2. 测试环境 :使用 npx prisma migrate deploy 应用迁移
  3. 生产环境 :使用 npx prisma migrate deploy 应用迁移
  4. 代码生成 :使用 npx prisma generate 更新客户端

❌ 禁止操作

  1. 绝对禁止 :在生产环境使用任何 reset 命令
  2. 绝对禁止 :使用 --force-reset 参数
  3. 绝对禁止:执行可能删除数据的 SQL 语句

🛡️ 安全防护措施

1. 环境变量保护

bash 复制代码
# 生产环境设置
NODE_ENV=production
DATABASE_URL="mysql://prod_user:${PROD_DB_PASS}@prod.mysql.internal:3306/cps_pro"

2. 备份策略

  • 自动备份:生产环境数据库自动备份
  • 迁移前备份:执行迁移前手动备份
  • 回滚准备:准备回滚方案

3. 权限控制

  • 生产环境:限制数据库操作权限
  • 开发环境:使用只读权限进行测试
  • 代码审查:所有数据库操作需要代码审查

🚨 紧急情况处理

如果误执行了危险命令

  1. 立即停止:停止所有数据库操作
  2. 检查备份:查看是否有可用备份
  3. 联系DBA:联系数据库管理员
  4. 数据恢复:从备份恢复数据

预防措施

  1. 命令别名:为危险命令设置别名提醒
  2. 环境检查:执行前检查当前环境
  3. 二次确认:重要操作需要二次确认

📚 常用安全命令组合

开发环境

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

⚠️ 重要提醒

  1. 永远不要 在生产环境使用 reset 命令
  2. 永远不要 使用 --force-reset 参数
  3. 永远不要在没有备份的情况下执行危险操作
  4. 永远遵循"不重置数据库"的最高安全准则
相关推荐
TDengine (老段)4 分钟前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
亚远景aspice7 分钟前
亚远景-ISO/PAS 8800在软件定义汽车(SDV)时代的AI安全治理角色
安全·汽车
qq74223498415 分钟前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE39 分钟前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy12393102161 小时前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎1 小时前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP1 小时前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql
l1t1 小时前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb
qq_5470261792 小时前
OAuth 2.0 安全授权
git·安全·github
安当加密2 小时前
Nacos配置安全治理:把数据库密码从YAML里请出去
数据库·安全