SKILL

data-migration

Changes a schema or moves data in production without downtime or loss — column changes, backfills, table splits, and system-to-system moves. Use this whenever the user is writing a migration, altering a table, backfilling data, renaming a column, or moving data between systems. Treat it as required reading before any migration runs against a database with real data. For designing the schema, use data-modeling.

原文 · 译文尚未补齐

适用对象:数据库。自动收录 · 待核查。

原作者说明节选

从固定版本的 SKILL.md 提取,保留原文语言。以下内容属于作者说明,本站尚未验证安装、兼容或运行结果。

查看英文原文

原文涵盖的主题

  • Data migration
  • 1. Never combine schema change with data change
  • 2. Use expand-then-contract for anything breaking
  • 3. Know which operations take locks
  • 4. Backfill in batches, outside the migration
  • 5. Rehearse on real data volume
  • 6. Have the plan written before you run it
  • Moving between systems

Migrations are the most irreversible thing most engineers do routinely. Code can be rolled back; a dropped column cannot, and a botched backfill can corrupt data in ways no deploy fixes. Two properties make a migration safe, and both must hold: Backwards compatible: the currently deployed code works before and after it runs Reversible, or backed up: you can get back, or you have a copy you have tested restoring If a migration has neither, it needs a maintenance window and a rehearsal. Separate migrations, separate deploys: 1. Add the new structure 2. Backfill it 3. Switch the code to use it 4. Remove the old structure — later, as its own change Combining these makes rollback impossible: reverting the code leaves the data half-moved, and reverting the data loses whatever the new code wrote. Done when: each step is independently deployable and revertible. Renaming a column is not a rename in production. It is: 1. Expand — add newname, nullable 2. Dual-write — deploy code writing both; reads still use the old 3. Backfill — populate newname for existing rows, in batches 4. Switch reads — deploy code reading the new column 5. Stop writing the old 6. Contract — drop oldname, well after e

这里只展示节选,请以完整原文和当前要求为准。

来源仓库
OKHP3/skillz
源文件
docs/archive/skill-redundancy-2026-09-19/docs-data/originals/community/data-migration/SKILL.md
固定版本
7b187777d42ab7bc7bab1e5f2c940cd3139ecebf
阅读完整原作者说明 ↗

来源与内容状态

本条为自动发现的元数据,尚未完成人工文档核查;适用性与运行结果待核查。

原作者:OKHP3/skillz · 原作者仓库元数据。文档核查:未核查。最近来源检查:2026-11-10T10:00:54.867Z。

分类由名称、说明与路径规则生成,分类不代表已核实适配。

许可与权利归属

MIT。第三方内容及版权归原作者,使用条件以原文为准。

许可原文 ↗

本站没有因同步、复制或用户自报成功而将资源标为运行验证通过。

限制与注意事项

  • 元数据收录不代表本站已经安装、适配、实测或进行安全审查。