Data Migration: Moving Data Between Systems Safely
Data migration — moving data from one system to another — is one of the highest-risk activities in any technology project. Data lost or corrupted during migration can be catastrophic. A structured approach with comprehensive testing and rollback planning is essential.
Types of Data Migration
- Database migration: Moving data from one database to another (e.g. on-premise SQL Server to cloud PostgreSQL)
- Application migration: Moving data as part of switching from one software system to another (e.g. migrating from one CRM to another)
- Schema migration: Changing the structure of an existing database (e.g. adding columns, restructuring relationships) — often required during application updates
- Cloud migration: Moving data from on-premise infrastructure to cloud storage or databases
Migration Approach
- Audit source data: Understand what data exists, its quality, and any anomalies that need handling
- Map source to target: Define how each source field maps to the target schema — document transformations required
- Build and test migration scripts: Run against copies of production data, not production itself
- Validate: Row counts, data samples, referential integrity checks — verify migration completeness and accuracy
- Cutover planning: Minimise downtime. Consider: dark launch (run both systems in parallel), phased migration, or maintenance window migration.
- Rollback plan: Define how to revert if the migration fails — and test the rollback before cutover