Skip to content

fix: 确保数据库迁移原子性与外键一致 - #68

Open
damingishere-coder wants to merge 1 commit into
codex/fix-analysis-attribution-contractsfrom
codex/fix-database-migration-atomicity
Open

fix: 确保数据库迁移原子性与外键一致#68
damingishere-coder wants to merge 1 commit into
codex/fix-analysis-attribution-contractsfrom
codex/fix-database-migration-atomicity

Conversation

@damingishere-coder

Copy link
Copy Markdown
Owner

改动摘要

  • 移除内容实验账本迁移中的 executescript 隐式提交风险。
  • 新增独立迁移,为历史 AI Run 补齐 Prompt 版本外键并保持 NO ACTION 语义。
  • 重建过程保留数据、索引、trigger 和下游反馈引用;未知结构或孤儿引用时整体拒绝。
  • 迁移前生成可恢复备份,提交前执行 foreign_key_check。

验证

  • 迁移与备份定向回归:28 passed
  • 迁移失败、重试、外键、孤儿引用、旧库专项:5 passed
  • 全量回归:865 passed
  • Ruff、Compileall、JavaScript、PowerShell、三套 Compose、pip check、git diff --check:通过

正式库只读证据

  • 当前 39 条 AI Run
  • 0 条孤儿 Prompt 引用
  • 0 条现有外键异常
  • 本 PR 未执行正式库迁移;正式库由既有服务并发更新,部署时仍需维护窗口和备份验收。

风险与回滚

  • 表重建只在缺少 Prompt 外键时执行,并在单事务内完成。
  • 任一结构、数据、索引或外键校验失败都会回滚且不写账本。
  • 可使用 workflow-before-ai-prompt-version-fk-* 备份恢复;本阶段未修改活动数据库。

本 PR 是堆叠 PR,目标分支为 codex/fix-analysis-attribution-contracts;未经用户明确确认不合并。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant