模块 3 · 检查 Codex 的交付

高风险改动前的
备份与恢复

动手修改高风险内容以前,先备份正确的文件和数据,并确认真的可以恢复。

预计阅读 30 分钟视频建议 26—32 分钟登录后免费核验于 2026.08.18

大家好,我是云途。

前面的练习只改一个 README,复制一份文件就能恢复。真实项目可能同时包含源码、配置、数据库和正在运行的网站,备份方法也会更复杂。

一份备份要满足三个条件:备份的是正确目标,内容足够新,而且你知道怎样恢复。只看到压缩包存在,还不能说明它真的有用。

这节课会带你按照任务风险选择恢复方法,并在正式修改前检查备份是否完整。

这节课要完成什么

  1. 判断任务需要哪一级恢复能力;
  2. 区分源码、依赖、构建产物、配置和业务数据;
  3. 在高风险动作前建立可验证恢复点;
  4. 用隔离环境演练恢复;
  5. 记录备份时间、来源、校验和恢复步骤。

四级恢复模型

单文件

保存原文或差异,适合低风险练习和小型内容修改。

项目版本

使用 Git 提交、分支或完整源码快照,适合多文件开发。

数据副本

从新鲜生产备份导入隔离开发库,适合用户、订单、权益和设备测试。

发布回滚

保留当前线上 release、配置与数据库备份,通过入口切换恢复。

先盘点要保护的对象

备份对象清单CHECKLIST
源码:页面、组件、脚本、迁移
规则:AGENTS.md、README、设计系统
配置:环境变量名、服务配置、域名与证书引用
数据:生产数据库、上传文件、用户权益
依赖:锁文件与版本说明(依赖目录通常可重建)
发布:当前 release 路径、服务状态、入口配置
证据:备份时间、大小、校验值、恢复步骤

node_modules、构建缓存和产物通常可以根据锁文件重建,不应替代源码与依赖声明。数据库则不能用一份旧测试 SQL 代替真实新鲜备份。

备份必须发生在关键动作以前

  1. 删除、覆盖或批量迁移文件;
  2. 升级大量依赖或框架;
  3. 执行数据库 migration;
  4. 修改真实用户、订单、余额、权益和设备;
  5. 部署、切换域名、重启关键服务;
  6. 把实验差异移植到正式版。

备份以后到实际操作之间如果又发生了业务写入,恢复点可能已经过期。生产操作要记录备份时间、线上入口和变更窗口。

验证备份,不要只验证文件存在

目标正确

归档来源就是当前真源或线上实际 release,不是历史同名目录。

内容完整

关键文件、配置说明和数据库对象数量符合预期。

文件可读

压缩包可列出、数据库备份可解析,校验值稳定。

恢复可行

在隔离目录或开发库中真正执行一次恢复和启动验证。

Git 能恢复源码,但不能包办全部系统

Git 适合记录文本源码差异、提交和分支。它通常不包含数据库真实状态、上传文件、密钥、服务器配置和构建运行时。

源码恢复点示例SHELL
git status --short
git diff -- app components data
git add app components data tests
git commit -m "feat: complete codex course lessons"
示例只说明版本记录思路。不要在存在用户未提交改动时擅自清理或覆盖;先区分本轮差异与既有差异。

数据库测试必须使用隔离副本

涉及真实业务数据时,不让实验版或本地测试直连生产 MySQL。先从新鲜生产备份导入明确命名的本地开发副本,所有写入只发生在副本。

数据库安全链FLOW
生产数据库
  ↓ 只读导出 + 校验
生产备份(冻结)
  ↓ 导入
本地开发副本(可写)
  ↓ 测试与清理
结果报告

禁止:本地测试结果反向同步生产

发布优先使用非覆盖切换

把新构建放入新的 release 目录,验证后切换入口,比直接覆盖当前线上目录更容易回滚。回滚仍要考虑数据库 migration 是否向后兼容。

  1. 记录当前线上 release 和服务状态;
  2. 从当前线上基线生成新候选,只叠加确认差异;
  3. 在候选上完成构建和隔离验收;
  4. 切换入口后检查健康、页面与关键链路;
  5. 失败时恢复旧入口,并确认数据库与缓存状态。

在变更前写出恢复卡片

可复制提示词

先不要执行变更。请为本任务建立恢复卡片:变更目标、真实操作对象、风险等级、备份来源与时间、备份文件或版本位置、完整性校验、隔离恢复演练结果、触发回滚的条件、逐步恢复命令、恢复后必须验证的页面与数据。任何一项无法确认时先报告,不继续高风险动作。

视频录制与复习提纲

  1. 比较单文件、Git、数据库和发布回滚;
  2. 识别哪些内容可以重建、哪些不可替代;
  3. 演示验证压缩包与校验值;
  4. 把生产备份导入隔离副本的概念链路;
  5. 解释非覆盖 release 切换;
  6. 完成一张恢复卡片并设置回滚条件。
完成检查

能恢复到哪里、怎样恢复,都要在变更前回答

  • 备份对象与真实操作对象一致;
  • 备份发生在关键变更以前;
  • 归档或数据库备份已经校验;
  • 恢复步骤在隔离环境可执行;
  • 生产测试不直连真实数据库;
  • 触发回滚条件和恢复后验收已经写明。

官方依据与延伸阅读

Codex 安全与权限Codex 工程与迁移使用案例