Download - Hitch yourwagon

Transcript
Page 1: Hitch yourwagon

O M &S S

7/26/13

Hitch Your Wagon!How to migrate legacy content into Drupal

Monday, July 29, 13

Page 2: Hitch yourwagon

Musketeers.me

Who are we?

• Sandy Smith (@SandyS1)

• Oscar Merida (@omerida)

Monday, July 29, 13

Page 3: Hitch yourwagon

Musketeers.me

It’s time to migrate

Monday, July 29, 13

Page 4: Hitch yourwagon

Musketeers.me

Now what?

Monday, July 29, 13

Page 5: Hitch yourwagon

Musketeers.me

Types of migrations

• App to CMS

• Hand-coded to CMS

• Between Drupal versions

Monday, July 29, 13

Page 6: Hitch yourwagon

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

Page 7: Hitch yourwagon

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

Page 8: Hitch yourwagon

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

Page 9: Hitch yourwagon

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

Page 10: Hitch yourwagon

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

Page 11: Hitch yourwagon

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

Page 12: Hitch yourwagon

Musketeers.me

Migration Strategies

• Automate as much as possible

• Use 3rd party solutions.

Monday, July 29, 13

Page 13: Hitch yourwagon

Musketeers.me

Migration Smells

• Inconsistent formatting

• No access to data store

• Legacy media formats

Monday, July 29, 13

Page 14: Hitch yourwagon

Musketeers.me

Old days

Monday, July 29, 13

Page 15: Hitch yourwagon

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

Page 16: Hitch yourwagon

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

Page 17: Hitch yourwagon

Musketeers.me

Modern Techniques

Monday, July 29, 13

Page 18: Hitch yourwagon

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

Page 19: Hitch yourwagon

Musketeers.me

Enterprise CMS

• Consistent role-based authoring workflow

• Centralized content repository

• Standardized presentations

• Less burdensome maintenance

Monday, July 29, 13

Page 20: Hitch yourwagon

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

Page 21: Hitch yourwagon

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

Page 22: Hitch yourwagon

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

Page 23: Hitch yourwagon

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

Page 24: Hitch yourwagon

Musketeers.me

Hand-Crafted,Artisanal Migration

• Manual copy from source.

• Source usually in various formats.

• Determine level of cleanup intended.

Monday, July 29, 13

Page 25: Hitch yourwagon

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

Page 26: Hitch yourwagon

Musketeers.me

Repeatable/Partial Migrations

• Allow for failed migrations

• Time doesn't stand still

• Risks

• New functionality on old site

Monday, July 29, 13

Page 27: Hitch yourwagon

Musketeers.me

Resources

• Migrate http://drupal.org/project/migrate

• Migrate Extras http://drupal.org/project/migrate

• WordPress Migratehttp://drupal.org/project/wordpress_migrate

• Drupal-to-Drupal data migrationhttp://drupal.org/project/migrate_d2d

• Move my Content! Florid Drupal Camphttp://bit.ly/18Dnt1a

Monday, July 29, 13

Page 28: Hitch yourwagon

Musketeers.me

Thank You!• Musketeers.me owns php[architect]:

• Magazine, books, training, conferences

• 25% Subscription discount!

• AZ42-W1JJ-D57Z

• PHP 5.5 Summit: Sept. 17

• http://summits.phparch.com/summits/php55/

• Questions?

Monday, July 29, 13