Data migration checklist: every step, owner and go/no-go gate
A phase-by-phase data migration checklist with an owner and a go/no-go gate for every step, including the parts most checklists skip: reconciliation with counts and checksums, cutover freezes, rollback triggers, parallel runs and decommissioning.

Key takeaways
- 01A data migration runs in six phases: scope and inventory, mapping and cleansing, test migrations, reconciliation, cutover with rollback, and post-go-live sign-off and decommissioning.
- 02Every step needs a named owner and a go/no-go gate agreed before work starts, not on cutover night.
- 03Reconcile with row counts, checksums, samples and business-rule totals; "the job finished without errors" is not proof the data is right.
- 04Google Cloud says "achieving truly zero downtime for clients is impossible", so plan a short, rehearsed cutover and keep the source as a fallback.
- 05Data quality is the usual blocker: 56% of respondents to dbt Labs' 2025 survey named it as a problem.
A data migration checklist covers six phases: scope and inventory, mapping and cleansing, test migrations, reconciliation, cutover with a rollback plan, and post-go-live sign-off and decommissioning. Each step needs a named owner and a go/no-go gate, so nobody discovers on cutover night that the data doesn't match or that there's no way back.
Most published checklists stop at "test and go live". They skip the parts that actually save migrations: proving the data matches, freezing changes before cutover, deciding in advance what triggers a rollback, and switching off the old system safely. This checklist adds them, and anchors each one in AWS, Google Cloud and Microsoft documentation. It works for database moves, application replatforms, ERP and CRM changes and warehouse consolidations. For website and CMS moves, see the section near the end.
What does a data migration checklist include?
| Phase | Key steps | Typical owner | Go/no-go gate |
|---|---|---|---|
| 1. Scope and inventory | Systems, data sets, volumes, consumers, strategy | Migration lead with data owners | Scope and strategy signed off |
| 2. Mapping and cleansing | Field mapping, transformation rules, data fixes | Data engineer with business data owners | Mapping approved; quality thresholds met |
| 3. Test migrations | Full rehearsals on production-like data | Data engineer and QA | Rehearsal within the time window, no blocking defects |
| 4. Reconciliation | Counts, checksums, samples, business totals | QA with finance or operations | Every check within agreed tolerance |
| 5. Cutover and rollback | Freeze, final sync, switch, smoke tests | Migration lead; business owner decides | Go/no-go call; rollback triggers not hit |
| 6. After go-live | Parallel run, sign-off, decommissioning | Business owner and IT | Formal sign-off; source retired per retention rules |
Write names in the owner column, not just job titles. A gate without a named decision-maker tends to get waved through.
What should you do before you start?
Inventory
- List every source system, database, schema and file store in scope, with row counts and data volumes.
- List every consumer of the data: applications, reports, integrations, exports and scheduled jobs.
- Record data owners for each data set, and any legal, regulatory or retention requirements.
- Note sensitive data (personal, financial, health) and how it must be protected in transit and in test environments.
- Decide what not to migrate: obsolete records, duplicates and data past its retention period.
Strategy
AWS's guidance on migration strategies says: "There are seven migration strategies for moving applications to the cloud, known as the 7 Rs". They are retire, retain, rehost, relocate, repurchase, replatform and refactor. AWS adds a warning worth taking seriously: "Refactor is not recommended for large migrations because it involves modernizing the application during the migration." Move first, modernise second, unless the business case says otherwise.
Then choose how the data moves:
| Approach | How it works | Suits | Main risk |
|---|---|---|---|
| Big bang | Everything moves in one cutover window | Smaller data sets, simple dependencies, an acceptable outage | One failure affects everything; rollback must be ready |
| Phased | Moves by module, region or customer group | Large estates and several dependent applications | Temporary sync between old and new systems |
| Trickle (continuous replication) | Data replicates continuously; final cutover is a short switch | Systems that can't take long downtime | More tooling and monitoring to run |
Gate: scope, strategy, owners and a target window signed off by the business owner.
How do you map, cleanse and transform the data?
- Build a field-level mapping: source table and field, target table and field, data type, transformation rule, default for missing values and owner.
- Profile the source data: nulls, duplicates, orphaned records, invalid formats, out-of-range values and inconsistent codes.
- Agree who fixes what. Fix in the source when the old system stays in use; fix in transformation when it doesn't.
- Map reference data and code lists (statuses, countries, currencies, product codes) explicitly.
- Decide how history is handled: full history, a cut-off date, or summarised balances.
- Record every rule in version control alongside the migration code.
Data quality is where migrations most often slow down. In dbt Labs' State of Analytics Engineering 2025 summary, "56% of survey respondents identified data quality as a problem." Budget time for cleansing as its own work stream.
Gate: mapping approved by data owners; quality thresholds (for example, zero orphaned records in key tables) met on the latest profile.
How do you test a data migration?
- Run the full migration end to end on a production-sized copy, not a sample.
- Time every step. The full rehearsal has to fit the cutover window with a margin.
- Run at least one rehearsal that ends in a rollback, so you know the way back works.
- Test applications, reports and integrations against the migrated data, not just the data itself.
- Log every defect with an owner and fix it in the migration code, never by hand in the target.
- Mask or protect sensitive data in non-production environments.
- Repeat until a rehearsal finishes within the window with no blocking defects.
Gate: a clean full rehearsal within the window, and signed-off test results from the application owners.
Reconciliation: how do you prove the data matches?
A migration job that finishes without errors has only proved it ran. Reconciliation proves the data is complete and correct.
| Check | What it catches | Example |
|---|---|---|
| Row counts per table and partition | Missing or duplicated records | Customers: source 1,204,311, target 1,204,311 |
| Checksums or hashes of key columns | Silent changes in values | Hash of order ID, amount and status per day matches |
| Sum and balance totals | Rounding, currency and sign errors | Total open invoice value matches to the cent |
| Random and targeted sampling | Mapping and transformation mistakes | 200 random records plus every edge case compared field by field |
| Business-rule checks | Logic broken by the move | Every active subscription has a customer and a price |
| Referential integrity | Broken relationships | No order without a customer, no line without an order |
Agree tolerances in advance. Most tables should match exactly; if any difference is acceptable (for example, records deliberately archived), document it and get the data owner's sign-off. Automate the checks so they run after every rehearsal and again at cutover.
Gate: every check within tolerance, signed by QA and the business data owner.
How do you plan cutover and rollback?
Plan for a short, rehearsed outage rather than none. Google Cloud's database migration principles say: "In a migration, achieving truly zero downtime for clients is impossible". With continuous replication, the outage shrinks to the switch itself; Microsoft's Azure DMS online migration tutorial notes: "Application downtime is limited to duration for the cutover at the end of migration."
Cutover runbook
- Announce the change freeze: no schema changes, releases or bulk updates in source systems from an agreed time.
- Take and verify your own backups. Don't assume the tool does it: Microsoft's tutorial states plainly that "Azure DMS doesn't take database backups".
- Stop writes to the source, or switch it to read-only.
- Run the final sync or final load.
- Run the automated reconciliation checks.
- Switch applications, connection strings, integrations and DNS to the target.
- Run smoke tests on the critical business journeys.
- Hold the go/no-go call at a fixed time with the named decision-maker.
Rollback plan
Keep the source intact. Google notes that "Sometimes you keep the source databases as a fallback measure if you encounter unforeseen issues with the target databases." Agree the triggers before cutover:
| Trigger | Example threshold | Action |
|---|---|---|
| Reconciliation failure | Any key table outside tolerance | Roll back before users return |
| Smoke test failure | Any critical journey failing (orders, payments, logins) | Fix within the window or roll back |
| Window overrun | Cutover running past the agreed end time | Roll back and reschedule |
| Performance | Response times or batch jobs far outside agreed limits | Fix forward if minor; roll back if users are blocked |
Decide how you'd handle data written to the target after go-live if you roll back later. The longer you run on the new system, the harder rollback becomes, so the rollback window should be short and explicit.
Gate: go/no-go decision recorded with time and decision-maker.
What happens after go-live?
- Run critical reports from both systems for an agreed period and compare them (a parallel run), especially finance and regulatory reports.
- Monitor errors, performance and data quality daily during the first weeks.
- Get formal sign-off from each data owner once the parallel run is clean.
- Keep the source read-only until sign-off, then archive it according to retention and legal-hold requirements.
- Turn off old integrations, scheduled jobs and credentials so nothing writes to the old system.
- Decommission infrastructure and licences on a set date, so you stop paying for two systems.
- Hand over runbooks and data pipelines to the team that will run them.
That last step matters more than it looks. Fivetran's 2025 research found that "67% of centralized enterprises allocate over 80 percent of their engineering resources to maintaining data pipelines". A migration is the best moment to replace fragile pipelines with tested, monitored ones, rather than copying old problems to a new platform.
Gate: signed acceptance from the business owner; source decommissioned or archived.
What about website and CMS migrations?
Moving a website or CMS adds a search layer on top of the data: every old URL must redirect to its new address, and content, metadata and structured data must arrive intact. Use our website migration checklist for that side, and our website migration team if you want it run for you. Moving servers and applications as well as data? See our cloud migration checklist.
Who should be on the migration team?
| Role | Responsible for | Signs off |
|---|---|---|
| Business owner | Scope, priorities and the final go/no-go decision | Go-live and acceptance |
| Migration lead | Plan, runbook, timeline and coordination | Each phase gate |
| Data owners (per domain) | Mapping rules, data fixes and tolerances | Mapping and reconciliation |
| Data engineers | Extraction, transformation, loading and automation | Rehearsal results |
| QA | Test plans, reconciliation checks and defect tracking | Test and reconciliation reports |
| Application and integration owners | Connected systems, connection changes and smoke tests | Application readiness |
| Security and compliance | Data protection, access and retention rules | Handling of sensitive data |
On small projects one person may hold several roles, but the business owner and the person who builds the migration should not be the same: the gate only works if someone independent of the build makes the call.
What are the most common data migration mistakes?
- Migrating everything, including data nobody needs, instead of cleaning and archiving first.
- Testing on a small sample, then discovering at cutover that the full load takes three times longer.
- Fixing defects by hand in the target, so the next rehearsal reintroduces them.
- No reconciliation beyond "the row counts look right".
- Rollback triggers decided during the outage, under pressure.
- Switching off the source before the parallel run and sign-off.
How long does a data migration take?
It depends on volume, the number of systems and how clean the data is. A single database moving to a managed service can take weeks; an ERP or multi-system consolidation can take months, mostly in mapping, cleansing and rehearsals. The cutover itself should be the shortest part. Size the project from the inventory and the first rehearsal, not from a guess.
How can Elgrith help?
Elgrith has delivered 1,000+ projects for 250+ clients since 2015, from our New Delhi headquarters and client centers in New York, London and Shanghai. Our data engineering team plans and runs data migrations with automated reconciliation, and builds the pipelines that run afterwards, often in Python. We also handle cloud migration and ERP development projects, and connect the migrated data to dashboards through data visualization. We don't claim partner status with any cloud or data platform. You get a fixed written quote after a free call. Book a call or start a project.
FAQ
Frequently asked questions
Sources 5 linked
- 01AWS Prescriptive Guidance — About the migration strategies (the 7 Rs)docs.aws.amazon.com(opens in a new tab)
- 02Google Cloud — Database migration: Concepts and principles, Part 1 (updated 29 Apr 2025)docs.cloud.google.com(opens in a new tab)
- 03Microsoft Learn — Migrate SQL Server to SQL Server on Azure VMs online with Azure DMS (updated 19 Oct 2026)learn.microsoft.com(opens in a new tab)
- 04dbt Labs — State of Analytics Engineering 2025 summary (16 May 2025)getdbt.com(opens in a new tab)
- 05Fivetran — Report finds nearly half of enterprise AI projects fail due to poor data readiness (13 May 2025)fivetran.com(opens in a new tab)
