SlideShare a Scribd company logo
Taking your site from Drupal 6 to Drupal 7 Tobby Hagler, Phase2 Technology
Overview Modules incorporated into Drupal Core How does this affect your work as a site maintainer Why not just stay in Drupal 6? How do I know when to upgrade Migration vs. Upgrading Tools to upgrade or migrate
Biggest changes between D6 and D7 Theme changes New templates such as html.tpl.php Render arrays Module changes Database changes – DBTNG
Contrib modules in Drupal Core CCK became Fields API Imagecache became Image Styles Tokens Admin jQuery UI And many more –  drupal.org/node/895314
How does this affect site maintainers Can keep the site’s look and feel to the average user May encounter drastic shifts in modules and site administration Will possibly require retraining (for site editors, content producers, etc)
Why not just stay in Drupal 6? New modules developed for Drupal 7 only Focus shift to Drupal 8, support for Drupal 6 will dwindle to security updates. Drupal 7 allows for bigger scale (database replication, storage engines)
Know when it's time Don’t get left behind – Module development shifts to D7, D6 support will dwindle Site cruft – As a site ages, cruft keeps a site from being maintainable in its current state
Upgrading vs. Migration Determine how much of your site can easily be upgraded Some modules have been deprecated, abandoned, or replaced Inventory your site Know that some content must still be migrated (CCK, user profiles, Image files)
What about my theme? Most likely, you’ll need to rebuild it Converting themes from Drupal 6 to Drupal 7 – drupal.org/node/254940 Render Arrays in Drupal 7 – drupal.org/node/930760 jQuery UI is in core now
What do I need? Dev environment (vhosts or localhost) SSH or FTP MySQL access to create new databases Drush – drupal.org/project/drush
Site inventory Show-stoppers – required functionality Next round upgrades – What’s used but not required? A better way? – Context and Features Nice-to-have or not worth the effort? Alternative replacements – 3 rd  party plugins Cut list – Identify site cruft
Site inventory: Show stoppers Check project page for 7.x version or core status Consider dependency change Look for upgrade paths or replacement modules If missing, you’ll probably want to rebuild and migrate
Determine upgrade paths Drupal core always has an upgrade path – See UPGRADE.txt Many popular modules have upgrade paths Some modules include documentation to migrate to other modules
Replace deprecated modules Nodewords is replaced with Metatags – no backwards compatibility Thickbox is replaced by Colorbox – a drop-in replacement
Upgrade process Find a way to quickly instantiate a copy Backup and work on a new instance Disable all contrib modules …and test Upgrade Drupal core …and test Upgrade contrib modules in order of importance to the site …and test
Upgrade process: Core See drupal.org/node/570162 Set theme to a core theme Disable all contrib modules Remove settings.php Copy 7.x over existing site Run update.php Upgrade CCK content
Upgrade process: CCK to Fields API See  drupal.org /node/ 1144136 Install CCK 7.x Admin > Structure > Migrate Fields May need additional CCK-related modules Test content and content types
Upgrade process: Contrib modules Download and install 7.x versions Check project page for migration instructions Drush is your friend drush dl module drush en module drush updatedb
Additional tools to help upgrade Upgrade Status and Upgrade Assist – drupal.org/project/upgrade_status Coder – drupal.org/project/coder Module Builder – drupal.org/project/module_builder Advanced Help – drupal.org/project/advanced_help
Or migrate... Sometimes the easiest thing is to rebuild the site from scratch and migrate content and users
Security concerns When migrating content, you risk exposing your data to the outside world Especially true with custom migration – using XML/feeds to export data may be open to anyone Best practice is to migrate from a local snapshot of production
Tools to migrate Migrate – drupal.org/project/migrate Backup and Migrate – drupal.org/project/backup_migrate Custom development – sometimes to meet the needs of your site, you’ll need to do some custom migration
Migrate includes: API for building a complete migration Drush commands that use Batch API Migrate UI Migrate Example – See how Migrate module is implemented with a working example Documentation – drupal.org/node/415260
Backup and Migrate Selectively choose database tables to migrate Doesn’t handle relational data like User Profiles Perfect for porting custom tables that won’t change
Custom migration Often, data must be exposed to pull content and users Exportable data via Views Feeds – import data in a variety of formats Many contributed Feeds modules that extend Feeds’ parsing capabilities
Database connections Table prefixing in settings.php – ‘other_database.’ as a prefix Switch database connections with db_set_active() – watch for errors and Schema API caching
Database prefixing $databases['default']['default'] = array( 'prefix' => array( 'default' => '', 'users' => 'shared.', 'sessions' => 'shared.', 'role' => 'shared.', 'authmap' => 'shared.', ), );
Other considerations Security – don’t expose your data, especially users  PHP timeout and memory settings Make backups and database dumps at every milestone drush sql-dump > backup.sql
Files migration Backup and Migrate Files – drupal.org/project/backup_migrate_files Recent Files – drupal.org/project/recent_files rsync Drupal 7 introduces public and private files drupal.org/documentation/modules/file
Questions?
Contact thagler@phase2technology  @phase2tech 703-548-6050 d.o: tobby

More Related Content

PDF
Drupal 6 to 7 migration guide
ODP
Upgrading your site from Drupal 6 to Drupal 7
PPT
Taking your module from Drupal 6 to Drupal 7
PDF
Everything You Need to Know About the Top Changes in Drupal 8
PDF
Drupal Migrations in 2018
PDF
Blisstering drupal module development ppt v1.2
PPT
Introduction to Module Development (Drupal 7)
PPTX
Drupal migrations in 2018 - SFDUG, March 8, 2018
Drupal 6 to 7 migration guide
Upgrading your site from Drupal 6 to Drupal 7
Taking your module from Drupal 6 to Drupal 7
Everything You Need to Know About the Top Changes in Drupal 8
Drupal Migrations in 2018
Blisstering drupal module development ppt v1.2
Introduction to Module Development (Drupal 7)
Drupal migrations in 2018 - SFDUG, March 8, 2018

What's hot (20)

PPT
Beginner's guide to drupal
PPTX
Best Practices for Migrating a Legacy-Based CMS to Drupal
ODP
Drupal 6x Installation
PDF
Introduction to Drupal Basics
ODP
Drupal 7x Installation - Introduction to Drupal Concepts
PPT
Introduction to drupal
PPTX
Drupal Frontend Performance and Scalability
PPTX
Drupal 8 deploying
PDF
Drupal upgrades and migrations. BAD Camp 2013 version
PPTX
Drupalcampatl d7
PPTX
Top 8 Improvements in Drupal 8
PDF
An Introduction to Drupal
PDF
Drupal Best Practices
PPTX
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
PPTX
How to Create a Drupal 8 Theme Using Bootstrap
PPT
Make Drupal Run Fast - increase page load speed
PDF
PPTX
Drupal 6 to Drupal 8 Migration
PDF
Drupal 8 Deep Dive: Plugin System
Beginner's guide to drupal
Best Practices for Migrating a Legacy-Based CMS to Drupal
Drupal 6x Installation
Introduction to Drupal Basics
Drupal 7x Installation - Introduction to Drupal Concepts
Introduction to drupal
Drupal Frontend Performance and Scalability
Drupal 8 deploying
Drupal upgrades and migrations. BAD Camp 2013 version
Drupalcampatl d7
Top 8 Improvements in Drupal 8
An Introduction to Drupal
Drupal Best Practices
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
How to Create a Drupal 8 Theme Using Bootstrap
Make Drupal Run Fast - increase page load speed
Drupal 6 to Drupal 8 Migration
Drupal 8 Deep Dive: Plugin System
Ad

Similar to Taking your site from Drupal 6 to Drupal 7 (20)

PDF
Upgrading to Drupal 7
PDF
Upgrades and migrations
PDF
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
PPTX
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
PDF
Tools to Upgrade to Drupal 8
PDF
Migrating to Drupal 8: How to Migrate Your Content and Minimize the Risks
PDF
How to Migrate Drupal 6 to Drupal 8?
PDF
MIGRATION - PAIN OR GAIN?
PPT
PPPA D8 presentation Drupal For Gov_0
ODP
SW Drupal Summit - Upgrading 6 to 7
PDF
Drupal migrations in 2018 - presentation at DrupalCon in Nashville
PDF
Drupalcamp Estonia - Drupal 7
PPTX
Best Practices for Moving to Drupal 9
PPTX
Drupal Migration
PDF
Best Practices for Moving to Drupal 9
PDF
Migrate all the things!
PPTX
The long and the short of migrating to Drupal
PPTX
Drupalcampchicago2010.rachel.datamigration.
PPTX
DrupalCamp St. Louis 2015 - Status of Migrate in 8
PDF
Drupal 8 update: May 2014. Migrate in core.
Upgrading to Drupal 7
Upgrades and migrations
October 2016 - USG Rock Eagle - Everything You Need to Know to Plan Your Drup...
Resources for Navigating Drupal Upgrades: Versions 6 Through 8 And What It Me...
Tools to Upgrade to Drupal 8
Migrating to Drupal 8: How to Migrate Your Content and Minimize the Risks
How to Migrate Drupal 6 to Drupal 8?
MIGRATION - PAIN OR GAIN?
PPPA D8 presentation Drupal For Gov_0
SW Drupal Summit - Upgrading 6 to 7
Drupal migrations in 2018 - presentation at DrupalCon in Nashville
Drupalcamp Estonia - Drupal 7
Best Practices for Moving to Drupal 9
Drupal Migration
Best Practices for Moving to Drupal 9
Migrate all the things!
The long and the short of migrating to Drupal
Drupalcampchicago2010.rachel.datamigration.
DrupalCamp St. Louis 2015 - Status of Migrate in 8
Drupal 8 update: May 2014. Migrate in core.
Ad

More from Phase2 (20)

PDF
Phase2 Health and Wellness Brochure
PDF
A Modern Digital Experience Platform
PDF
Beyond websites: A Modern Digital Experience Platform
PDF
Omnichannel For Government
PDF
Bad camp2016 Release Management On Live Websites
PDF
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
PPTX
The Future of Digital Storytelling - Phase2 Talk
PDF
Site building with end user in mind
PDF
Fields, entities, lists, oh my!
PDF
Performance Profiling Tools and Tricks
PDF
NORTH CAROLINA Open Source, OpenPublic, OpenShift
PDF
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
PDF
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
PDF
Site Building with the End User in Mind
PDF
The Yes, No, and Maybe of "Can We Build That With Drupal?"
PDF
User Testing For Humanitarian ID App
PDF
Redhat.com: An Architectural Case Study
PDF
The New Design Workflow
PDF
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
PDF
Memorial Sloan Kettering: Adventures in Drupal 8
Phase2 Health and Wellness Brochure
A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience Platform
Omnichannel For Government
Bad camp2016 Release Management On Live Websites
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
The Future of Digital Storytelling - Phase2 Talk
Site building with end user in mind
Fields, entities, lists, oh my!
Performance Profiling Tools and Tricks
NORTH CAROLINA Open Source, OpenPublic, OpenShift
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
Site Building with the End User in Mind
The Yes, No, and Maybe of "Can We Build That With Drupal?"
User Testing For Humanitarian ID App
Redhat.com: An Architectural Case Study
The New Design Workflow
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Memorial Sloan Kettering: Adventures in Drupal 8

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation theory and applications.pdf
PPT
Teaching material agriculture food technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Big Data Technologies - Introduction.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
The AUB Centre for AI in Media Proposal.docx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Modernizing your data center with Dell and AMD
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Review of recent advances in non-invasive hemoglobin estimation
MYSQL Presentation for SQL database connectivity
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Diabetes mellitus diagnosis method based random forest with bat algorithm
Electronic commerce courselecture one. Pdf
NewMind AI Monthly Chronicles - July 2025
Encapsulation theory and applications.pdf
Teaching material agriculture food technology
Unlocking AI with Model Context Protocol (MCP)
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Big Data Technologies - Introduction.pptx

Taking your site from Drupal 6 to Drupal 7

  • 1. Taking your site from Drupal 6 to Drupal 7 Tobby Hagler, Phase2 Technology
  • 2. Overview Modules incorporated into Drupal Core How does this affect your work as a site maintainer Why not just stay in Drupal 6? How do I know when to upgrade Migration vs. Upgrading Tools to upgrade or migrate
  • 3. Biggest changes between D6 and D7 Theme changes New templates such as html.tpl.php Render arrays Module changes Database changes – DBTNG
  • 4. Contrib modules in Drupal Core CCK became Fields API Imagecache became Image Styles Tokens Admin jQuery UI And many more – drupal.org/node/895314
  • 5. How does this affect site maintainers Can keep the site’s look and feel to the average user May encounter drastic shifts in modules and site administration Will possibly require retraining (for site editors, content producers, etc)
  • 6. Why not just stay in Drupal 6? New modules developed for Drupal 7 only Focus shift to Drupal 8, support for Drupal 6 will dwindle to security updates. Drupal 7 allows for bigger scale (database replication, storage engines)
  • 7. Know when it's time Don’t get left behind – Module development shifts to D7, D6 support will dwindle Site cruft – As a site ages, cruft keeps a site from being maintainable in its current state
  • 8. Upgrading vs. Migration Determine how much of your site can easily be upgraded Some modules have been deprecated, abandoned, or replaced Inventory your site Know that some content must still be migrated (CCK, user profiles, Image files)
  • 9. What about my theme? Most likely, you’ll need to rebuild it Converting themes from Drupal 6 to Drupal 7 – drupal.org/node/254940 Render Arrays in Drupal 7 – drupal.org/node/930760 jQuery UI is in core now
  • 10. What do I need? Dev environment (vhosts or localhost) SSH or FTP MySQL access to create new databases Drush – drupal.org/project/drush
  • 11. Site inventory Show-stoppers – required functionality Next round upgrades – What’s used but not required? A better way? – Context and Features Nice-to-have or not worth the effort? Alternative replacements – 3 rd party plugins Cut list – Identify site cruft
  • 12. Site inventory: Show stoppers Check project page for 7.x version or core status Consider dependency change Look for upgrade paths or replacement modules If missing, you’ll probably want to rebuild and migrate
  • 13. Determine upgrade paths Drupal core always has an upgrade path – See UPGRADE.txt Many popular modules have upgrade paths Some modules include documentation to migrate to other modules
  • 14. Replace deprecated modules Nodewords is replaced with Metatags – no backwards compatibility Thickbox is replaced by Colorbox – a drop-in replacement
  • 15. Upgrade process Find a way to quickly instantiate a copy Backup and work on a new instance Disable all contrib modules …and test Upgrade Drupal core …and test Upgrade contrib modules in order of importance to the site …and test
  • 16. Upgrade process: Core See drupal.org/node/570162 Set theme to a core theme Disable all contrib modules Remove settings.php Copy 7.x over existing site Run update.php Upgrade CCK content
  • 17. Upgrade process: CCK to Fields API See drupal.org /node/ 1144136 Install CCK 7.x Admin > Structure > Migrate Fields May need additional CCK-related modules Test content and content types
  • 18. Upgrade process: Contrib modules Download and install 7.x versions Check project page for migration instructions Drush is your friend drush dl module drush en module drush updatedb
  • 19. Additional tools to help upgrade Upgrade Status and Upgrade Assist – drupal.org/project/upgrade_status Coder – drupal.org/project/coder Module Builder – drupal.org/project/module_builder Advanced Help – drupal.org/project/advanced_help
  • 20. Or migrate... Sometimes the easiest thing is to rebuild the site from scratch and migrate content and users
  • 21. Security concerns When migrating content, you risk exposing your data to the outside world Especially true with custom migration – using XML/feeds to export data may be open to anyone Best practice is to migrate from a local snapshot of production
  • 22. Tools to migrate Migrate – drupal.org/project/migrate Backup and Migrate – drupal.org/project/backup_migrate Custom development – sometimes to meet the needs of your site, you’ll need to do some custom migration
  • 23. Migrate includes: API for building a complete migration Drush commands that use Batch API Migrate UI Migrate Example – See how Migrate module is implemented with a working example Documentation – drupal.org/node/415260
  • 24. Backup and Migrate Selectively choose database tables to migrate Doesn’t handle relational data like User Profiles Perfect for porting custom tables that won’t change
  • 25. Custom migration Often, data must be exposed to pull content and users Exportable data via Views Feeds – import data in a variety of formats Many contributed Feeds modules that extend Feeds’ parsing capabilities
  • 26. Database connections Table prefixing in settings.php – ‘other_database.’ as a prefix Switch database connections with db_set_active() – watch for errors and Schema API caching
  • 27. Database prefixing $databases['default']['default'] = array( 'prefix' => array( 'default' => '', 'users' => 'shared.', 'sessions' => 'shared.', 'role' => 'shared.', 'authmap' => 'shared.', ), );
  • 28. Other considerations Security – don’t expose your data, especially users PHP timeout and memory settings Make backups and database dumps at every milestone drush sql-dump > backup.sql
  • 29. Files migration Backup and Migrate Files – drupal.org/project/backup_migrate_files Recent Files – drupal.org/project/recent_files rsync Drupal 7 introduces public and private files drupal.org/documentation/modules/file

Editor's Notes

  • #3: ----- Meeting Notes (7/21/11 22:05) ----- Here's a quick overview of what I plan to cover. The topics I plan to discuss will be from a high-level view of what's needed to take your site from Drupal 6 to Drupal 7; whether that's upgrading your site, or building something completely new in D7 and migrating your users and content to it. I won't get into great detail, but I certainly hope to push you in the right direction.
  • #6: While you can keep the site’s look and feel to the average user, drastic shifts in modules and site administration will possibly require retraining (for site editors, content producers, etc)
  • #8: Don’t get left behind: As module development shifts to D7, D6 support will dwindle – module maintainers only have so much time. New versions or features will be introduced in 7.x versions, as well as bug fixes – typical behavior is to fix in the latest version (HEAD) and backport to 6.x if warranted and as time allows. Site cruft: Sometimes, as a site gets on in years, cruft (either development or content) keeps a site from being maintainable in its current state. Then, a redesign or site refresh is in order.
  • #9: Determine how much of your site can easily be upgraded. Drupal Core, most popular contrib modules, and themes have upgrade paths that will update site content for you.
  • #10: Converting themes from Drupal 6 to Drupal 7 -- has 60+ changes to Drupal 7 theming. Template file changes (like html.tpl.php), block changes – helpful names rather than numeric IDs (CSS selector wrangling); region changes like right and left sidebar became first and second sidebar; primary and secondary links became main_menu and secondary_menu. Render arrays! Render arrays are the building blocks of content; structured content not rendered into HTML until the last possible moment. Think about Forms API arrays. When we went from 4.5 to 4.6, you no longer built your forms in HTML; this allows for hook_form_alter – preprocess and postprocess hooks in theme now.
  • #11: This is kind of a non-sequeter, but it’s useful to get this out of the way now, to talk about the tools that you need in your arsenal
  • #12: Show-stoppers – required functionality Next round upgrades – What’s used, but not required for immediate use (reporting, newsletters). Identifying these can make upgrading your site faster and can keep the budget down for things that can be handled later. Better ways? – Perhaps there’s now a better way to do what your site did. Context and Features are all vast improvements to development and maintenance workflow that weren’t likely available when your site was first built. Nice-to-haves – What features to users occasionally use, but perhaps aren’t worth the effort. Alternative replacements -- What can be replaced with third-party plugins? There are more widgets available now than when the site was first build (Disqus, Wibya) Cut list – identify site cruft and what things can be left on the cutting room floor.
  • #13: Compare this inventory with what has 7.x versions. Modules may require fewer dependencies now that some contrib modules are in code. Dependencies may have changed if a previous dependency module was deprecated. Might have new dependencies. You may not need to keep some modules if they’re no longer required. This allows you to establish a level of effort (LOE) for upgrading your existing site vs. building a new version of your site and migrating content. Determine if you can live with beta versions. Sometimes, beta means it’s got bugs. Some developers use “beta” to signify level of maturity, *not* the level of quality. May go through 10 betas before releasing a 1.0; many times, these beta versions are fine. But sometimes beta isn’t production ready (not all functionality is complete, etc). Read the issue queues
  • #14: Some modules have migration or upgrade documentation right on their project page (or they link to documentation from their main project page). Issue queues aren’t just for bugs. Look in module’s issue queues to determine upgrade issues and tips. When you get stuck, you should realize that you probably aren’t the first one, so check the issue queues. Check the forums also, for tips on upgrading particular modules. Drupal search is your friend, and Google is your BFF.
  • #15: Chances are, you’re going to have to replace some outdated, deprecated, or abandoned modules. It happens. It even happens when working within the same version of Drupal. Maintainer of Nodewords is a co-maintainer of Metatags, and *is* working on a migration path.
  • #16: Don’t do this in your main development environment. You want to use a new, fresh development environment (another vhost is fine, shared hosting is fine, just use a different database and code base). You’ll want to refer back to your main dev site for comparison as a control. You’ll also want to take snapshots of code and database along the way. Think of it as save points in your game.
  • #17: There’s some really thorough documentation on Drupal.org to walk you through step-by-step in upgrading core. It’s very detailed and will basically hold your hand through the whole process. Distilled down, these are the main steps of upgrading Drupal core.
  • #18: There’s some great documentation linked from the main CCK project page that walks you through upgrading your custom content types to Fields API. The D7 version of CCK does *not* do any custom-content, that’s what Field API is. CCK in D7 is primarily a bridge between old CCK and Fields API.
  • #19: It’s important to do this one at a time. Start with dependencies, then work your way up through the highest priority modules. Views?
  • #20: Module builder doesn’t help upgrade much; but in the event you need to throw together a custom module to help, Module Builder will help with a module’s skeleton quickly. Advanced Help will have information about upgrading Views from 6 to 7.
  • #22: If your scripts can access your data, most likely, so can anyone else. Be particularly careful to avoid exposing your user data. Depending on your privacy policy, depending on your local or state laws, if you expose your user data, you may be in hot water. Even if no one finds it, just the *exposure itself* can cause you some headaches.
  • #23: Might want to check out table wizard and Data modules; not sure the status, but they both do well to expose data that you might want to import using Feeds module in your new site.
  • #24: Migrate module has a very robust API to migrate content. Uses Batch API to keep the process running without timeouts. Can save progress; can stop and restart migration. Also allows for incremental migration – you can migrate everything you have now, but while you’re working on the new site, users are adding new content. This allows you to migrate only the new stuff.
  • #25: Backup and Migrate lets you backup your database and lets you cherry-pick tables. It does some automation of database table backups to potentially help with incremental migrations. Doesn’t *do* anything to your database tables; it just backs them up and you can import those into your new site. Doesn’t handle relational data integrity or anything. It’s perfect for just moving over custom tables to your new site.
  • #26: Table Wizard, Data, Views RSS – all let you access data in ways that you can spit out any feed type that you want: RSS, Atom, Custom XML, CSV, whatever. You can use Views with arguments to handle different types of data that you want to port to the new site. Feeds replaced FeedsAPI module. Feeds will let you define your own parser if you need to, and define what happens with the date from your feed – how it gets inserted into the new site.
  • #27: Direct database connections bypass the need to have exposed data and data parsing, and cuts right to the chase. Might be preferable for smaller jobs, and when using shared environments. Will need to do a schema load prior to switching the active database to prevent a chicken-or-egg scenario.
  • #29: There are few things in this world more frustrating than watching a custom migration script run for 5 minutes, and then just timeout. Passing values by reference instead of by value helps reduce your migration script’s memory footprint.