Hitch yourwagon

Post on 15-Jan-2015

634 views 0 download

Tags:

description

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: Deciding between manual and automated approaches to moving content Planning and scheduling large migrations to maintain your sanity What workflows and review steps are needed to ensure success Using the Migrate and other contributed modules to move content into Drupal.

Transcript of Hitch yourwagon

O M &S S

7/26/13

Hitch Your Wagon!How to migrate legacy content into Drupal

Monday, July 29, 13

Musketeers.me

Who are we?

• Sandy Smith (@SandyS1)

• Oscar Merida (@omerida)

Monday, July 29, 13

Musketeers.me

It’s time to migrate

Monday, July 29, 13

Musketeers.me

Now what?

Monday, July 29, 13

Musketeers.me

Types of migrations

• App to CMS

• Hand-coded to CMS

• Between Drupal versions

Monday, July 29, 13

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

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

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

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

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

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

Musketeers.me

Migration Strategies

• Automate as much as possible

• Use 3rd party solutions.

Monday, July 29, 13

Musketeers.me

Migration Smells

• Inconsistent formatting

• No access to data store

• Legacy media formats

Monday, July 29, 13

Musketeers.me

Old days

Monday, July 29, 13

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

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

Musketeers.me

Modern Techniques

Monday, July 29, 13

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

Musketeers.me

Enterprise CMS

• Consistent role-based authoring workflow

• Centralized content repository

• Standardized presentations

• Less burdensome maintenance

Monday, July 29, 13

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

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

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

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

Musketeers.me

Hand-Crafted,Artisanal Migration

• Manual copy from source.

• Source usually in various formats.

• Determine level of cleanup intended.

Monday, July 29, 13

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

Musketeers.me

Repeatable/Partial Migrations

• Allow for failed migrations

• Time doesn't stand still

• Risks

• New functionality on old site

Monday, July 29, 13

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

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