5. Data migration fears
High risk
Lots of manual work
Always goes over budget
Full of gotchas and bad surprises
Not a reusable investment
Lots of downtime during cutover
I’ll get fired if we fail
Wednesday, October 26, 2011
6. Methodology
✓ Client is heavily engaged from the beginning.
✓ Client has web app for monitoring progress.
✓ Show early results, and frequent progress.
✓ Completely scripted. No manual steps. No surprises.
✓ Migrate module is already battle tested.
✓ Incremental migrations. Drupal lags by only 5 minutes.
Goal: Confidence
Wednesday, October 26, 2011
7. Migrate Module
• A Drush application written by Cyrve.
• Only enterprise grade migration tool for Drupal.
• Robust - many site changes don’t affect migration
• Fully code driven. No config in DB. Easy to deploy.
• UI for clients and developers to collaborate.
• Shows not yet dispositioned source data.
• Shows progress for any un-progress import.
Wednesday, October 26, 2011
8. Import Flow
Fetch Map Munge Save Log
id name source drupal source drupal
11 sue name uname 11 33
22 fred email mail 22 44
44 alan
<xml>
Wednesday, October 26, 2011
9. Intimate with data sources
• DB: mysql, postgres, mssql, oracle
• Formats: csv, xml, json
• Local sources or remote web services
• See Migrate/plugins for example code
Wednesday, October 26, 2011
10. Build Drupal content types
and fields
• Forum post
• User profile
• Community (an Organic group)
• Tutorial
• Reference document
• Announcement
• Image, Video, Audio
Wednesday, October 26, 2011
11. Write migration classes
• A class for each import. The guts of the code.
• Defines a fetch SQL query (or media file path, ...)
• Mapping source column to Drupal field
• Dependency declaration (Y must run before X)
• Hooks for data massaging
• Hooks for referenced item creation
• Kick off any post-import routines
Wednesday, October 26, 2011
12. Import and rollback
• Can choose one migration or all.
• Can limit import to N records or specific records.
• Maintains a map between source and destination IDs.
• Error reporting and logging.
• Facilitates the import/rollback/code/re-import loop.
• Reports throughput and % complete.
• XHProf integration for speed and memory optimization.
• Developer or sysadmin can perform imports.
Wednesday, October 26, 2011
13. Go Live
Client has been reviewing Drupal site for weeks.
Drupal site gets tweaked and improved until ...
Client is satisfied - point load balancer to Drupal.
No major data migration. We are always synched.
Champagne.
Wednesday, October 26, 2011
14. Success with Acquia
✓ We have never failed. Nobody gets fired ☺
✓ Extremely experienced in Drupal and Migration.
✓ We achieve high confidence and comfort via:
✓ Highly repeatable process.
✓ Data is constantly synched. Easy to evaluate new site.
✓ Client is continously involved and informed.
Wednesday, October 26, 2011