- 24
- March
Data Migration — How to Move Data into ERP Without Breaking Things
From over 10 years of experience implementing ERP systems for government and private organizations, the Grand Linux Solution team has found that Data Migration is the #1 issue causing ERP projects to be delayed or fail. Not because the technical aspect is difficult, but because many organizations underestimate the workload, legacy data is scattered, formats don't match, and there is no clear testing plan. This article covers 5 essential steps, a 15-point checklist, and 7 common mistakes so implementation teams can plan with confidence.
Why Data Migration is the #1 Problem in Every ERP Project
According to Panorama Consulting research, over 60% of delayed ERP projects have data migration as the primary cause. Common reasons include:
- Scattered data — residing in multiple Excel file versions, legacy databases, multiple legacy systems, or even paper documents
- No data owner — nobody takes responsibility for which data is correct or which version is the latest
- Underestimating the workload — thinking "just copy data from old system to new" when in reality you must Clean, Map, Transform, and Validate
- No testing plan — performing migration once and going live immediately without prior testing
- No Rollback Plan — if migration fails, there is no plan to revert
5 Data Migration Steps You Must Follow
Step 1: Planning
Good planning is the foundation of successful data migration. You must be able to answer these questions:
- Survey existing data: Where does data reside? In which systems? How many databases? How many formats?
- Define scope: What data must be migrated? What starts fresh? How many years of historical data?
- Choose migration method:
| Method | Big Bang | Phased |
|---|---|---|
| Description | Migrate all data at once | Migrate module by module / phase by phase |
| Advantages | Fast completion, no need to maintain old system long | Lower risk, fix issues section by section |
| Disadvantages | High risk, if it fails the whole system is affected | Takes longer, must maintain 2 systems simultaneously |
| Best for | Small-medium organizations, simple data | Large organizations, multiple branches |
Step 2: Data Cleansing
Old data typically has these issues that must be cleaned before migration:
- Duplicates: The same vendor recorded 3 times under different names, e.g., "ABC Company Ltd." vs "ABC Co." — must be merged into one record
- Incomplete data: Missing postal codes, tax IDs, incomplete addresses — must find and fill in the missing information
- Inconsistent formats: Dates in some rows as DD/MM/YYYY and others as YYYY-MM-DD, phone numbers with or without dashes — must be standardized
- Obsolete data: Vendors no longer in business, employees who resigned 10 years ago, discontinued products — decide whether to migrate or not
Step 3: Data Mapping
Data Mapping is matching fields from the old system to fields in the new system. This must be done meticulously because data structures rarely match:
| Old System (Source) | New ERP System (Target) | Notes |
|---|---|---|
| vendor_name | supplier_name | Field name change |
| addr1 + addr2 | full_address | Merge 2 fields into 1 |
| tax_id (13 digits) | tax_identification_number | Validate format |
| item_type (text) | item_category_id (number) | Must map text values to IDs |
| N/A | cost_center_code | New field, must define values |
The Chart of Accounts is a section that requires especially detailed mapping, as it impacts all financial reports.
Step 4: Testing
Migration must be tested at least 3 rounds before actual go-live:
- Round 1 — Proof of Concept: Test with a small sample dataset (100-500 records) to verify that scripts and mapping work correctly
- Round 2 — Full Test Migration: Test with all actual data in a test environment. Verify record counts, monetary totals, and balances
- Round 3 — Dress Rehearsal: Simulate the actual migration following the planned timeline. Measure time taken and test the entire cutover plan
Validation Checklist after each test round:
- Source record count = Target record count?
- Monetary totals match? (to 2 decimal places)
- Inventory balances match?
- Master Data complete? (vendors, customers, products, employees)
- Financial reports output correctly?
- User permissions set correctly?
Step 5: Go-Live
Once testing is passed, prepare for actual go-live:
- Cutoff Date: Set the date to stop recording data in the old system. Typically month-end or quarter-end, to ensure clean opening balances
- Parallel Run: Run old and new systems side-by-side for 2-4 weeks to compare results. Read more about ERP Project Preparation Checklist
- Rollback Plan: If critical issues are found (data errors exceed 5% or system cannot function), there must be a plan to revert to the old system within 24 hours
- Data Freeze: During migration, no new data should be entered in the old system, otherwise data will be out of sync
Types of Data to Migrate
| Data Type | Examples | Difficulty | Must Migrate? |
|---|---|---|---|
| Master Data | Chart of accounts, vendors, customers, products, employees | Medium | Always required |
| Opening Balances | Account balances, inventory, receivables/payables | High | Always required |
| Transaction Data | Purchase orders, invoices, withdrawal slips | Very high | Case by case |
| Historical Data | Historical reports, statistics | Medium | Keep in old system / BI |
| Attachments | Contract files, images, PDFs | Low | Case by case |
15-Point Checklist Before Go-Live
| # | Checklist Item |
|---|---|
| 1 | All data sources surveyed (legacy systems, Excel, paper) |
| 2 | Data migration scope clearly defined |
| 3 | Data Cleansing completed (duplicates removed, gaps filled, standardized) |
| 4 | Data Mapping completed for all fields |
| 5 | Migration tested at least 3 rounds |
| 6 | Source record count = Target record count (verified for all tables) |
| 7 | Monetary totals match (to 2 decimal places) |
| 8 | Inventory/product balances match |
| 9 | Chart of Accounts in new system is complete and correct |
| 10 | Cutoff Date defined |
| 11 | Parallel Run plan in place (duration, comparison criteria) |
| 12 | Rollback Plan in place (revert within 24 hours) |
| 13 | End users trained |
| 14 | Old system data backed up |
| 15 | Executive sign-off for Go-Live approved |
7 Common Mistakes + How to Prevent Them
| # | Mistake | Prevention |
|---|---|---|
| 1 | No Data Cleansing — migrating dirty data into the new system | Always cleanse before migrating ("Garbage In, Garbage Out") |
| 2 | Testing only once then going live | Test at least 3 rounds (POC, Full Test, Dress Rehearsal) |
| 3 | No Data Freeze before Go-Live — people still entering data in old system | Set clear Cutoff Date and communicate to everyone |
| 4 | Not verifying monetary totals after migration | Reconcile all monetary totals between old and new systems |
| 5 | No Rollback Plan | Prepare Rollback Plan + Backup old system before migration |
| 6 | Letting IT do it alone — no Business Owner verification | Have Key Users from each department validate their own data |
| 7 | Underestimating time — thinking it can be done in 1 week | Plan 4-8 weeks for the entire Data Migration process |
Successful ERP implementation requires prioritizing Data Migration from the start of the project, not waiting until just before go-live. Organizations that plan Data Migration systematically will significantly reduce the risk of project delays.
"Good data is the foundation of a good ERP system — if the data isn't clean, no matter how good the system is, it's meaningless."
Related Articles from Knowledge Center
- ERP Project Preparation Checklist Implementation
- Change Management — How to Get People to Adopt the New System Implementation
- ERP Integration with Other Systems — API, Integration, and What You Need to Know Implementation
- Is Your Organization Ready for ERP? 10 Questions to Answer Executive
- What is a Chart of Accounts?
- Risks of Using Excel in Organizations

