Do you have a mess of static HTML pages? Are you maintaining piecemeal legacy applications from the days before you had a shiny CMS? In this session we'll look at migration approaches for bringing that content into Drupal. We'll share what we've learned migrating a decade's worth of pages, content across a dozen database, and audio and video content - almost 15k nodes at last count - into Drupal 7.
This session will explore:
<ul>
<li>Deciding between manual and automated approaches to moving content
<li>Planning and scheduling large migrations to maintain your sanity
<li>What workflows and review steps are needed to ensure success
<li>Using the Migrate and other contributed modules to move content into Drupal.
</ul>
6. Musketeers.me
App to CMS
• Legacy applications
• Home-grown
• Translate the functionality not the
form
• Leverage Drupal
• Standardize (helps with UX, too)
Monday, July 29, 13
7. Musketeers.me
Hand-coded to CMS
• Look at variability
• Automate well-structured &
consistent HTML
• Few old sites are consistent
• Sounds like a job for Intern-person!
• Migration training opportunities
Monday, July 29, 13
8. Musketeers.me
Drupal versions
• Major versions are not backward
compatible
• Contributed modules may be left
behind, lag in updating.
• Content & media have to be
migrated.
Monday, July 29, 13
9. Musketeers.me
Planning
• Map old to new (not 1:1)
• Decide what to leave behind
• Allow for exceptions & discovery
• Agile approach
• Review early & often w/
stakeholders
Monday, July 29, 13
10. Musketeers.me
Content Inventory
• Take stock of current site
• Identify needed functionality
• Views/modules/contexts
• Information Architecture
• Draft content types
• Sketch site map, navigation
Monday, July 29, 13
11. Musketeers.me
Prioritization
• Foundational content
• Cross-cutting taxonomies
• Media handling
• Content important to users
• Content important to stakeholders
• Group like content & functionality
Monday, July 29, 13
15. Musketeers.me
Old Case In Point
• Mambo (predecessor to Joomla!) to
Drupal 5
• ~60,000 data objects (video, audio,
text)
• siloed to interrelated
Monday, July 29, 13
16. Musketeers.me
Old solution
• Copy both sites to local machine
• Custom scripts to migrate
• Find interrelations
• Reverse engineer both Mambo and
Drupal DB structures
• bootstrapped too slow
Monday, July 29, 13
18. Musketeers.me
Case in point, an inhouse
PHP site
• Static HTML content since 2003
• 12 databases
• 290+ Video files, 25G data
• 780+ Audio files, 8.5G data
• 3 external WordPress blogs
• Multiple video players, slideshow tools
Monday, July 29, 13
20. Musketeers.me
Migrate module
• Multiple sources: DB or XML/CSV files
• Execute, rollback, update migrations
• Map legacy content using PHP classes
• Approve, cleanup content before
saving
• Process content after it is saved
Monday, July 29, 13
21. Musketeers.me
Migrate Extras
• Extends migrate module capabilities
• Flag, GeoField, Media, OG, Rules
• Support moving to contrib modules
• Date, Email field, Entity Reference,
Link
Monday, July 29, 13
22. Musketeers.me
WordPress Migrate
• Import content from WordPress
• Can import media content
• Uses WXR export format from WP
• Leverages Migrate API
Monday, July 29, 13
23. Musketeers.me
Migrate_d2d
• Migrate from previous versions to
Drupal 7
• Uses the Migrate API
• Provides a UI for mapping legacy
content to D7
Monday, July 29, 13
25. Musketeers.me
Cleanup
• Automated
• Update links, media.
• Tag content based on keywords
• Hand-correcting
• Save for last for content imported
via Migrate module.
Monday, July 29, 13