跳到主要内容
哒哒星球DADA PLANET

Prompt · 已公开版本

字段要改了,先列一份迁移方案

把字段变更拆成兼容、回填和核对步骤,先想清楚旧版本还能不能工作。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

【虚构编辑示例】
字段:SQLite中users增加display_name,可空;旧应用只读name,新应用优先读display_name,空时回退name。
条件:允许先加字段再升级;准备把旧name回填到display_name;没有提供备份恢复验证。

输出

【虚构编辑示例】
当前先确认两项前置条件:
• 验证备份能恢复,记录用户数和关键样本。
• 明确新旧应用是否还会修改name,新应用怎样写display_name,何时开始双写或同步,以及冲突以哪个字段为准。现有材料只说明了读法,不能据此保证回填一致或应用可回退。

写入规则确认后,方案可按以下顺序细化:

  1. 增加可空字段display_name,暂时保留name。
  2. 部署确定的写入兼容措施,验证新旧应用并存时的更新都能按规则同步。
  3. 发布兼容读取逻辑。回填只处理仍为空的display_name,并核对回填期间的并发更新,避免旧name覆盖新值。
  4. 对账用户数、未回填行和抽样姓名,出现异常暂停后续切换。

回退应用前,必须确认name仍是按规则同步后的值;保留字段本身不能证明数据没有过时。备份恢复处理的是另一类问题,需要单独验证。

完整提示词

根据数据库版本、字段变更和读写路径写迁移步骤。先核对新旧应用是否仍会修改旧字段,新字段由谁写入,共存期间怎样双写或同步,以及发生冲突时以哪一份为准。这些条件未定时,先列出需要决定的写入规则,不把先后回填当成一致性保证。
规则确定后,再安排加字段、兼容发布、可重入回填、并发写入核对和切换,避免覆盖迁移期间的新写入。写清继续与停止条件,区分回退应用和恢复数据;回退前要核对旧字段是否仍包含最新值。未知方言、数据规模或锁行为不靠猜测补SQL和时长;没有恢复证据就把它列为迁移前缺口。本次只输出方案。

数据库版本、表结构与字段变更:
{{material}}

新旧读写路径、数据规模和回退能力:
{{context}}