展开本页目录
开始前准备什么
- 先下载并解压本题工程,在独立练习目录保留starter、reference和原始输入。
- 本地参考主要需要Python 3与现代桌面浏览器;涉及Chrome扩展、LibreOffice、Git时按本文单独要求准备。
- 目标工具账号、模型额度与平台导入能力由读者另行确认;本文实际运行范围见执行记录,不自动调用付费服务。
- 复制starter数据库到练习目录
- 让Codex先生成显式备份命令和恢复检查
- 设计v2借阅表、外键和迁移版本记录
- 运行迁移
- 在新的副本运行故意失败迁移
- 从备份恢复到另一文件
- 第二次执行同一迁移
starter、七步任务、原始输入、人工完成的可运行参考、真实运行结果与独立验收;不含账号、数据库或缓存。
原生账号任务、本地工程运行和官方示例分开说明。
1. 复制starter数据库到练习目录
复制starter数据库到练习目录,记录版本、10条数据和原文件校验值。
reference/library.py中的BOOKS定义10本虚构书,第3本author为None。verify.py只在临时目录建库,公共包不包含数据库文件。
2. 让Codex先生成显式备份命令和恢复检查
让Codex先生成显式备份命令和恢复检查,不直接碰任何个人数据库。
调用sqlite3连接的backup接口生成独立备份,恢复时写到另一个临时文件。只看文件存在不算备份有效。
3. 设计v2借阅表、外键和迁移版本记录
设计v2借阅表、外键和迁移版本记录,确定空作者保留null。
迁移函数在事务中增加loans外键表,并用PRAGMA user_version区分v1/v2。已有v2明确返回already-v2。
4. 运行迁移
运行迁移,给两本书增加借阅记录并在界面回读。
成功分支插入图书1/2的虚构借阅人,再查询归属;前后10本书的全部字段与空作者应保持。
5. 在新的副本运行故意失败迁移
在新的副本运行故意失败迁移,核对错误和部分变更的处理。
失败演练故意引用不存在的book_id=999,必须得到FOREIGN KEY constraint failed并回滚;不拿真实业务库做这个试验。
独立目录练习命令
cd reference
python3 verify.py6. 从备份恢复到另一文件
从备份恢复到另一文件,再打开原v1应用检查图书记录。
从独立备份恢复另一个文件,把版本、表结构和10行内容与原始快照比较。JSON结果保留恢复相同与失败事务已回滚两项。
7. 第二次执行同一迁移
第二次执行同一迁移,检查不重复建表/不重复数据,并归档实际日志。
运行 python3 verify.py 可再次执行全套演练;结果写为result.json。关闭连接后临时库自动清理,正文截图回读的是这次实际结果。
怎样确认已经完成
- 成功迁移后10本书字段逐项保留,null作者不变,新增两条借阅记录归属正确。
- 故意失败后可从独立备份恢复,恢复库的表结构和10本书内容与v1真值一致。
- 重复执行迁移明确跳过或退出,不添加重复记录;外键错误真实被拒绝。
常见问题
让AI改数据库前,怎么先做一个真的能恢复的备份?
调用sqlite3连接的backup接口生成独立备份,恢复时写到另一个临时文件。只看文件存在不算备份有效。 失败演练故意引用不存在的book_id=999,必须得到FOREIGN KEY constraint failed并回滚;不拿真实业务库做这个试验。
给小书库加借阅功能,迁移失败能回到原样吗?
成功分支插入图书1/2的虚构借阅人,再查询归属;前后10本书的全部字段与空作者应保持。 运行 python3 verify.py 可再次执行全套演练;结果写为result.json。关闭连接后临时库自动清理,正文截图回读的是这次实际结果。
下载包哪些内容已实际运行,哪些需要自己在原生工具中验证?
已真实建临时SQLite库、独立备份、迁移、外键失败回滚和备份恢复;没有把数据库放入公共下载。 官方图片只证明所标入口或设置,不是本站原生任务执行截图。



