# Expand-Contract Migration

> A technique for changing a schema in steps, adding the new shape, moving every reader and writer, then removing the old shape.

Record: `lexicon:expand-contract-migration`
Kind: technique
Layer: [Correctness Core](https://banes-lab.com/records/layer/correctness-core.md)
Canonical: https://banes-lab.com/ontology/lexicon#lexicon-expand-contract-migration

Listed in [Lexicon terms](https://banes-lab.com/api/records/lexicon.md), after [Recovery Policy](https://banes-lab.com/records/lexicon/recovery-policy.md) and before [Dual Read and Write](https://banes-lab.com/records/lexicon/dual-read-and-write.md).

## Category

- [Self-Healing / Recovery / Deployment Safety](https://banes-lab.com/records/lexicon-category/self-healing-recovery-deployment-safety.md)

## Refactors

- [Irreversible Migration](https://banes-lab.com/records/architecture/irreversible-migration.md)
- [Rollback](https://banes-lab.com/records/architecture/rollback.md)

## Linked from

- [Anti-patterns](https://banes-lab.com/ontology/principles/architecture-category-anti-patterns.md)
- [Self-Healing / Recovery / Deployment Safety](https://banes-lab.com/ontology/principles/architecture-category-self-healing-recovery-deployment-safety.md)
