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.
Target: Databases. Automatically collected · unverified.
Excerpt from the author’s documentation
Extracted from a fixed version of SKILL.md in its original language. This is the author’s documentation; installation, compatibility and runtime results have not been verified by this site.
Read the original English text
Topics in the source
- 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
This is an excerpt. Refer to the complete source and its current requirements.
- Source repository
- OKHP3/skillz
- Source file
- docs/archive/skill-redundancy-2026-09-19/docs-data/originals/community/data-migration/SKILL.md
- Fixed revision
- 7b187777d42ab7bc7bab1e5f2c940cd3139ecebf
Sources and evidence
This record was collected automatically. Its documentation, suitability and runtime behavior have not been manually verified.
Author: OKHP3/skillz · original repository metadata. Documentation review: Not reviewed. Last source check: 2026-11-10T10:00:54.867Z.
Categories are inferred from names, descriptions and paths. They do not establish compatibility.
License and attribution
MIT. Third-party content and copyright remain with their authors. Refer to the original license and terms.
Original license ↗Synchronization, copying and user-reported success do not mark a resource as runtime-tested.
Limitations and notes
- Collecting metadata does not mean this site has installed, adapted, runtime-tested or security-reviewed the resource.