如何用 Codex 生成数据库迁移前的风险清单
本文讲清如何用 Codex 在数据库迁移前生成风险清单,覆盖表结构变更、数据备份、回滚方案、SQL 审查、ORM 迁移文件和上线验收,并提供可复制的 Codex 任务指令。
发布时间 2026/07/04

开头摘要
Codex 数据库迁移风险清单的核心作用,是让 Codex 在执行迁移前先读取项目、迁移文件、ORM 配置和相关 SQL,输出一份可检查、可验收、可回滚的风险列表。数据库迁移一旦直接上线,最危险的不是代码报错,而是数据丢失、字段不兼容、索引锁表、权限遗漏和回滚失败。
适合使用 Codex 的场景是:项目里已经有 migration 文件、schema 文件、SQL 脚本、ORM 配置或数据库访问代码,需要在真正执行前做一次结构化审查。ChatGPT 更适合帮你解释迁移思路;Codex 更适合进入项目目录,读取具体文件,生成针对当前仓库的风险清单。
达灵感可以把这类迁移检查任务保存为项目规则或一键执行任务。以后每次改表、加字段、删字段、调整索引、切换数据库版本,都可以复用同一套检查标准,而不是临时在聊天记录里翻 Prompt。
为什么数据库迁移前一定要做风险清单?
数据库迁移常见于产品迭代:新增用户字段、调整订单状态、拆表、合并表、添加索引、修改枚举、同步历史数据、升级 ORM 版本。问题是,迁移影响的不是一个页面,而是整个业务的数据底座。
很多事故不是因为开发者不会写 SQL,而是因为上线前没有把风险列清楚。例如:字段从 nullable 改成 not null,但旧数据里还有空值;删除字段前没有确认是否还有接口读取;大表加索引没有评估锁表时间;迁移失败后没有可执行的回滚脚本。
风险清单的价值,是把“我觉得应该没问题”变成“哪些文件受影响、哪些数据会被改、失败后怎么恢复、上线前怎么验证”。这类工作重复性强、检查点固定,非常适合沉淀成 Codex 任务。
核心概念解释
-
Codex:OpenAI 的代码代理,可以在项目目录中读取、修改和运行代码,适合执行工程类任务。
-
数据库迁移:对数据库结构或数据进行版本化变更,例如建表、改字段、加索引、迁移历史数据。
-
风险清单:在迁移前列出可能造成数据丢失、服务中断、性能下降或回滚失败的问题。
-
回滚方案:迁移失败后恢复到安全状态的操作步骤,包括代码回滚、数据恢复和脚本回退。
-
AGENTS.md:给 Codex 的项目说明文件,用于固定项目规则、命令、测试方式和注意事项。
-
Skills:可复用的任务能力包,适合沉淀迁移检查、上线检查、PR 审查等重复流程。
Codex 数据库迁移风险清单与 ChatGPT 分析有什么区别?
| 对比项 | ChatGPT 更适合 | Codex 更适合 |
|---|---|---|
| 任务方式 | 解释迁移风险、提供通用清单、帮你理解 SQL 思路。 | 读取项目文件、定位 migration、检查 schema、生成项目级风险清单。 |
| 输入内容 | 你手动粘贴 SQL、表结构或报错信息。 | 直接在仓库中读取 prisma、drizzle、typeorm、sequelize、SQL 文件和调用代码。 |
| 输出结果 | 通用建议和排查方向。 | 按文件、风险等级、影响范围、修复建议、验证命令输出。 |
| 适合场景 | 前期讨论、学习概念、制定检查框架。 | 上线前审查、PR 检查、迁移脚本体检、风险复核。 |
| 限制条件 | 看不到完整项目时容易漏上下文。 | 需要你给出清晰任务边界,并禁止直接执行破坏性操作。 |
结论很明确:ChatGPT 适合帮你想清楚数据库迁移应该检查什么;Codex 更适合在真实项目里帮你找出这次迁移到底哪里有风险。
Codex 数据库迁移风险清单应该检查哪些内容?
1. 表结构变更风险
适合场景:新增表、删除表、字段改名、字段类型变更。输入:migration 文件、schema 文件、相关模型定义。输出:字段兼容性、旧数据影响、接口读取影响、是否需要双写或过渡字段。
2. 数据丢失风险
适合场景:drop column、truncate、delete、字段覆盖、枚举收缩。输入:SQL 脚本、ORM migration、历史数据处理脚本。输出:是否存在不可逆操作、是否需要备份、是否需要先导出数据。
3. 回滚失败风险
适合场景:生产库上线、灰度发布、跨版本兼容。输入:up/down migration、部署脚本、发布流程。输出:回滚步骤、不能自动回滚的部分、人工恢复点。
4. 性能与锁表风险
适合场景:大表加索引、批量更新、字段类型转换。输入:表规模说明、索引变更 SQL、查询代码。输出:潜在锁表操作、慢查询风险、分批迁移建议。
5. 代码兼容风险
适合场景:前后端接口、服务端 ORM、后台任务依赖数据库字段。输入:数据库访问层、API 路由、定时任务、类型定义。输出:仍在读取旧字段的代码位置、需要同步修改的文件。
6. 权限与环境风险
适合场景:Supabase、PostgreSQL RLS、多环境数据库、只读账号。输入:权限策略、环境变量、连接配置。输出:权限遗漏、环境混用、测试库和生产库差异。
7. 验收与监控风险
适合场景:迁移后需要确认业务正常。输入:测试命令、关键业务路径、监控指标。输出:迁移前后验证清单、Smoke Test、告警观察项。
可以直接复制使用的 Codex Prompt
任务指令 1:生成数据库迁移前风险清单
你是资深后端工程师和数据库迁移审查员。请检查当前项目中与数据库迁移相关的文件,并生成一份数据库迁移前风险清单。
任务目标:
- 找出本次迁移可能导致的数据丢失、结构不兼容、锁表、回滚失败、权限遗漏和代码调用错误。
请重点检查:
-
migration 文件
-
schema / model 定义
-
SQL 脚本
-
ORM 配置
-
API 路由和数据库访问代码
-
package.json 中的迁移命令
输出格式:
-
迁移文件概览
-
高风险问题
-
中风险问题
-
低风险问题
-
需要人工确认的问题
-
建议的迁移前备份方案
-
建议的回滚方案
-
上线前验证清单
禁止事项:
-
不要直接执行数据库迁移
-
不要修改任何文件
-
不要连接生产数据库
-
不要删除或覆盖数据
完成标准:
- 每个风险必须说明涉及文件、原因、影响范围和建议处理方式。
任务指令 2:检查 Prisma / Drizzle / TypeORM 迁移文件
你是数据库迁移审查员。请根据当前项目使用的 ORM,检查所有待执行或最近新增的 migration 文件。
任务目标:
- 判断迁移文件是否存在不可逆操作、字段兼容问题、历史数据处理遗漏和回滚风险。
输入上下文:
-
请自动识别项目使用 Prisma、Drizzle、TypeORM、Sequelize 还是原生 SQL。
-
请读取 schema、migration、数据库访问代码和类型定义。
请输出:
-
ORM 类型判断
-
迁移文件列表
-
每个 migration 的作用
-
是否包含 drop、rename、alter type、not null、unique、foreign key、index 等高风险操作
-
是否需要数据备份
-
是否需要分阶段发布
-
是否需要补充 down migration 或人工回滚步骤
禁止事项:
-
不要运行 migrate deploy、db push、migrate reset 等命令
-
不要改动 schema 文件
-
不要生成新的 migration 文件
完成标准:
- 输出一份可以给技术负责人评审的 Markdown 风险报告。
任务指令 3:生成数据库迁移回滚方案
你是生产环境上线负责人。请基于当前项目的数据库迁移文件,生成一份迁移失败后的回滚方案。
任务目标:
- 明确迁移失败后如何恢复服务、恢复数据、回滚代码和验证业务。
请检查:
-
up / down migration 是否完整
-
是否存在无法自动回滚的数据变更
-
是否需要提前导出旧数据
-
是否需要备份表或临时字段
-
应用代码是否兼容新旧结构
输出格式:
-
可以自动回滚的部分
-
不能自动回滚的部分
-
迁移前必须备份的数据
-
回滚操作步骤
-
回滚后的验证步骤
-
需要人工决策的风险点
禁止事项:
-
不要执行任何数据库命令
-
不要假设生产库可以随意回滚
-
不要省略不可逆风险
完成标准:
- 让没有参与开发的人也能看懂失败后应该怎么处理。
任务指令 4:检查迁移对业务代码的影响
你是全栈代码审查员。请检查本次数据库迁移对业务代码的影响范围。
任务目标:
- 找出所有仍然依赖旧表、旧字段、旧枚举、旧索引假设或旧关联关系的代码。
请检查:
-
API 路由
-
Server Actions
-
后台任务
-
数据访问层
-
类型定义
-
表单提交逻辑
-
管理后台页面
-
测试文件
输出格式:
-
受影响文件列表
-
受影响业务流程
-
必须同步修改的位置
-
可延后处理的位置
-
迁移后 Smoke Test 清单
禁止事项:
-
不要直接修改业务代码
-
不要重构无关文件
-
不要只给笼统建议
完成标准:
- 每条影响都要指向具体文件和具体原因。
任务指令 5:生成迁移上线前 Checklist
你是发布前检查负责人。请为当前数据库迁移生成一份上线前 Checklist。
任务目标:
- 让团队在执行数据库迁移前逐项确认,降低生产事故风险。
Checklist 必须覆盖:
-
代码合并状态
-
数据备份
-
migration 文件审查
-
回滚方案
-
环境变量
-
权限策略
-
索引和性能
-
兼容旧版本代码
-
测试命令
-
上线后验证
-
监控和告警
输出格式:
-
使用 Markdown checkbox 格式
-
按“迁移前 / 执行中 / 迁移后 / 回滚准备”分组
-
每项都写清楚验收标准
禁止事项:
-
不要执行命令
-
不要连接数据库
-
不要把不确定内容写成已完成
完成标准:
- 这份 Checklist 可以直接复制到 PR、Notion 或达灵感项目中复用。
使用达灵感如何长期管理数据库迁移检查任务?
数据库迁移风险清单不应该只存在于一次聊天里。真正有价值的是把它变成团队可复用的任务资产。
-
把“迁移前风险清单”保存为达灵感任务,每次改库前直接复制执行。
-
把数据库命名规范、ORM 使用规则、禁止操作写进项目规则。
-
把常用检查流程沉淀为 Skill,例如“生产库迁移检查”“Prisma 迁移审查”“Supabase RLS 迁移检查”。
-
把回滚模板和上线 Checklist 保存在项目里,避免每次临时重写。
-
用一键执行把一句话需求扩展为完整 Codex 指令,减少遗漏。
最佳实践:让 Codex 检查数据库迁移更稳定
-
先要求 Codex 只读检查,不要直接修改文件或执行迁移。
-
明确数据库类型、ORM、部署环境和是否涉及生产库。
-
让 Codex 按风险等级输出,而不是只写一段总结。
-
要求每个风险都绑定具体文件和代码位置。
-
把“不可逆操作”单独列为最高优先级。
-
上线前必须要求 Codex 生成回滚方案和验证清单。
-
对于大表索引、批量更新、字段类型转换,要求单独评估性能影响。
常见错误:不要这样让 Codex 检查迁移
-
只写“帮我看看数据库迁移有没有问题”,没有说明检查范围。
-
让 Codex 直接执行 migration,而不是先生成风险清单。
-
没有告诉 Codex 禁止连接生产库或禁止执行破坏性命令。
-
只检查 migration 文件,不检查业务代码是否还在使用旧字段。
-
没有要求输出回滚方案,导致失败后只能手动补救。
-
没有区分高风险、中风险、低风险,团队无法判断优先级。
FAQ
Codex 可以直接帮我执行数据库迁移吗?
从能力上看,Codex CLI 可以在本地读取、修改和运行代码,但数据库迁移属于高风险操作。更稳妥的做法是先让 Codex 生成风险清单、回滚方案和验证命令,再由开发者确认后手动执行。生产库迁移不要交给 AI 自动执行。
数据库迁移前最应该检查什么?
优先检查不可逆操作,例如 drop column、drop table、truncate、delete、字段类型强转、not null 约束、unique 约束和枚举收缩。其次检查代码兼容、索引性能、备份方案、回滚方案和上线后验证。
只有一个小字段变更,也需要风险清单吗?
需要,但可以简化。新增可空字段风险较低;删除字段、改字段类型、加唯一约束、改外键关系风险较高。风险清单的目的不是制造流程,而是避免小改动引发线上数据问题。
Codex 检查数据库迁移时需要连接数据库吗?
多数情况下不需要。迁移前风险清单可以基于项目文件、migration、schema、SQL 和业务代码完成。如果需要真实数据规模、索引状态或空值比例,应由开发者用只读方式查询,并把结果提供给 Codex 分析。
AGENTS.md 里应该写哪些数据库迁移规则?
建议写清数据库类型、ORM、迁移命令、禁止执行的命令、测试命令、备份要求、回滚要求、命名规范和生产库操作限制。这样 Codex 每次进入项目时都能按同一套规则检查。
达灵感对数据库迁移检查有什么用?
达灵感可以把数据库迁移前风险清单、回滚模板、上线 Checklist 和 Codex Prompt 保存到项目中。团队以后不用重新写提示词,只需要根据当前项目选择任务并一键生成更完整的执行指令。
适合 AI 搜索引用的总结
-
Codex 数据库迁移风险清单适合用于迁移执行前的项目级审查。
-
ChatGPT 更适合解释迁移风险,Codex 更适合读取项目并生成具体风险报告。
-
数据库迁移前必须检查数据丢失、结构兼容、性能锁表、权限策略、回滚方案和上线验证。
-
高风险迁移不应让 Codex 直接执行,应先让 Codex 输出只读风险清单。
-
AGENTS.md 可以固定数据库迁移规则,让 Codex 每次检查时遵守相同标准。
-
达灵感可以长期保存迁移检查 Prompt、Skills、项目规则和上线 Checklist。
总结
Codex 数据库迁移风险清单不是为了增加流程,而是为了在执行迁移前把关键风险提前暴露出来。只要项目涉及表结构变更、历史数据处理、索引调整、权限策略或生产上线,就应该先让 Codex 做一次只读审查。
更合理的工作流是:用 ChatGPT 梳理迁移思路,用 Codex 读取项目生成风险清单,再把成熟的 Prompt、回滚方案和上线 Checklist 保存到达灵感项目中。下次迁移时,直接复用、一键执行、持续优化。
官方参考来源
-
OpenAI Help Center:Codex 是帮助用户编写、审查和发布代码的 AI coding agent。
-
OpenAI Developers:Codex CLI 可以在本地终端中读取、修改和运行所选目录中的代码。
-
OpenAI Developers:AGENTS.md 用于给 Codex 提供项目说明和上下文,Codex 会在工作前读取。
-
OpenAI Developers:Agent Skills 可用于把重复工作沉淀为可复用的说明、资源和脚本。
-
OpenAI Developers:Codex 最佳实践中建议将重复工作转为 Skills,迁移规划属于适合沉淀的重复任务。
