SlideShare a Scribd company logo
Upgrades and
Migrations, how?
David Lanier
@nadavoid
ThinkShout
Sunday, October 6, 13
Overview
• Getting your Drupal 6 site onto Drupal 7
• Use traditional upgrade or migrate data to
new site
• Look at the benefits and drawbacks of both
approaches
Sunday, October 6, 13
Your site is unique, so take what you find today and let it help you in your decision making. I
won't be saying always do it one way.
Both approaches do require work.
An Architecture
Metaphor
• Changing the foundation (codebase) of
your house
Sunday, October 6, 13
Do you lift the house and swap out the foundation?
Or do you build a new house on a new foundation, then move your stuff in?
Basic pieces
• Codebase (core, modules, themes, libraries)
• Database
• Files (images, pdfs, mp3s, etc.)
Sunday, October 6, 13
Files = content.
Database & Files together = "data"
Upgrade overview
• Swap out the foundation, house in place.
• Replace codebase, run upgrade scripts on
existing data & files.
• Built into core and contrib.
• UI based
Sunday, October 6, 13
Lift the house, swap in a new foundation, set the house down on the new foundation.
The upgrade scripts essentially upgrade the plumbing and wiring to be compatible with the
new foundation.
UI centered, but drush can be used for most upgrades as well. 'drush updb'
Migrate overview
• Build new house on a new foundation.
• Build new site. Import data from old site.
• Write custom code to define the specifics
of the migration.
Sunday, October 6, 13
The details of a migration must be handled by writing custom code. There is also helpful
support in the UI.
Feeds
• Best fit is to regularly import new data.
• Not usually a good fit for full migrations.
• It is easy to learn, but it usually falls short
when getting into the details, such as
handling relationships and very large
datasets.
Sunday, October 6, 13
I really like feeds, and it can be super for importing data into Drupal. But it's just not a
module I generally recommend for a full site migration.
Which way do I go?
• Why do you want to go?
Sunday, October 6, 13
First thing to think about is why specifically do you want to move to Drupal 7?
Are there architectural things that need to be changed in your site, in order to take advantage
of what you want from D7?
Traditional upgrade if:
• Drupal site, only one version back
• Simple site
• Few contrib modules
• End result should mirror current site
• Content is infrequently updated
• A little downtime is OK
Sunday, October 6, 13
Downtime can still be avoided, using good deployment methods.
Also, if limited time is available (and the other conditions are met).
Traditional upgrade
downsides
• Hard to get rid of legacy cruft
• Field names
• Content type structures
• Anything else that seems old or odd
Sunday, October 6, 13
Migrate if:
• Drupal 5 site, or even a different platform
• Complex site
• Many contrib modules
• New site needs structural changes or
enhancements
• Content is frequently updated
• Minimal downtime is very important
Sunday, October 6, 13
Migrate downsides
• Very code-centric
• Very granular
Sunday, October 6, 13
Averse to custom coding? Maybe prefer upgrade. But Migrate isn't so hard, I promise!
Granular: you generally have to specify everything (image alt, title, language, etc.). Of course,
that could also be a good thing. You're in full control.
Initial preparation
• Regular D7 system requirements
(drupal.org/requirements)
• Local development environment that can
support several copies of the site
Sunday, October 6, 13
D7: PHP 5.3 recommended, MySQL 5.
Local Dev: for testing, experimenting, practicing
Architecture of current
site
• Inventory of modules, libraries, themes
•drush pml | grep Enabled
• Content Types, fields
• Views, other configuration
• Important pages, capabilities, workflows
• Reference copy of the site
Sunday, October 6, 13
Save lists of directories (list of modules)
Save drush output
Save certain pages
Have a clear idea of exactly what it is you're upgrading from
Determine upgrade
path
• Module to D7 options
• same module (pathauto)
• different module
• moved into core (CCK to fields)
• nothing available, so custom solution
Sunday, October 6, 13
This is where most of the work will be.
Be sure to check if D7 version of modules have their own dependencies. Views adds a ctools
dependency. Others will likely require the libraries module.
Determine upgrade
path
• Custom modules
• Converting 6.x modules to 7.x:
http://drupal.org/node/224333
Sunday, October 6, 13
Any custom code will need to be updated to match the Drupal 7 API and coding standards.
Determine upgrade
path
• Theme
• Update or replace base theme
• Update or rebuild subtheme
• Upgrading 6.x themes to 7.x
https://drupal.org/node/254940
Sunday, October 6, 13
A custom theme is custom code, so needs same attention.
Prepare the source
• Install a copy of the site to use as the
source.
• Remove all disabled or unused modules.
• Update all remaining modules to their
latest D6 versions.
Sunday, October 6, 13
How to Upgrade
• Practice on a copy of the site.
• Pristine copy of site for reference.
• Copy of site with everything D6 updated.
• Copy that is actually getting upgraded.
Sunday, October 6, 13
Today's Example
• RidePDW.com Portland Design Works
• Portland company that develops bicycle
accessories
Sunday, October 6, 13
I experimented with an upgrade, but ended up doing a migration instead.
Process
• Commit after each step.
• Definitely after updating each module.
• Include db exports.
Sunday, October 6, 13
DB Exports: if not in the repo, in their own folder.
Upgrade Core
• Refer back to your list of all enabled
modules
• Disable all enabled contrib modules
• Switch theme to Garland, including the
admin theme
Sunday, October 6, 13
Upgrade core
• Use the copy of the site that you have for
actually upgrading
• Replace core files manually
• Delete core directories & files
• Add the new ones
• Download Drupal, move the files into
place
Sunday, October 6, 13
I generally prefer to swap in the new files/folders, rather than building up a new codebase.
(List of "incompatible" modules helps me know where I am)
Update the database
• Do 'drush updb'
• Watch output, observe warnings
• Save output to refer back to
Sunday, October 6, 13
Sunday, October 6, 13
Sunday, October 6, 13
Sunday, October 6, 13
Sunday, October 6, 13
Core upgrade
complete!
• Yay!
• You're running Drupal 7 now
• Commit the current state to a repo
• Next step, contrib modules
Sunday, October 6, 13
Upgrading contrib
modules
• Upgrade one at a time
• Module's d.o page
• Module's README.txt or INSTALL.txt or
UPGRADE.txt
• Check for special steps, instructions
• Check for new dependencies
Sunday, October 6, 13
Do a little research on each module before trying. Then go ahead and try.
Dependencies: views needs ctools. ubercart needs rules. rules needs entity.
Add the new code
• This works: drush dl modulename
• Or, delete existing, then add the new
Sunday, October 6, 13
Where to start?
• Start with the most foundational
• ctools
• views
• Or most standalone
• pathauto
• devel
Sunday, October 6, 13
Views
• Replace views code
• Update database
• Enable the upgraded module
Sunday, October 6, 13
This seems to be the usual process. But it's still best to see the module's upgrade
documentation first.
Views database updated
Sunday, October 6, 13
Enable views
Sunday, October 6, 13
Enable views
Sunday, October 6, 13
Upgrade CCK
• Download D7 version of CCK
• Enable the content_migrate module
• Use the UI to migrate CCK fields to drupal
core fields
Sunday, October 6, 13
Kind of a special case, because it's a major architectural change, bringing fields into core.
Also common pattern: contrib module providing upgrade path into core.
Available fields
Sunday, October 6, 13
Provides suggestions of things to do, and notes about what it will do.
Caveat: it lets you migrate fields, even if the relevant content type does not yet exist properly
in the upgraded site. Should content types come before fields?
Converted Fields
Sunday, October 6, 13
Unavailable Fields
Sunday, October 6, 13
Migrate CCK fields
• Install required modules
• Enable modules that define content types
• Sometimes several layers of dependencies
emerge
Sunday, October 6, 13
nodereference is used to refer to products. Products are defined by ubercart. Ubercart
requires Rules. Rules requires entity api.
How to Migrate
• Building a whole new house, with its own
new foundation.
• Then we will move all of our data into it.
Sunday, October 6, 13
Plan and get organized
• Collect data and files into a safe place, to
use as a pristine, read-only source.
• Make a spreadsheet or list to plan out your
mapping
• Build out the architecture of the new site
Sunday, October 6, 13
Identify questionable or troublesome pieces, e.g. whether to keep certain fields.
Build: at least content types & fields.
Anything else that is needed by your migrated data.
Set up environments
• Install or get access to a reference site
• Install source database
• Install a built destination site
• An IDE for exploring the migrate API
Sunday, October 6, 13
reference site = this is how it currently is. must be inspectable.
migrate_d2d
• Not discussing migrate_d2d in depth today.
Sunday, October 6, 13
Not migrate_d2d:
- complicated things for me as a newcomer to the migrate framework.
- Added too many layers and did not streamline things for me.
- Had to unmap many things that it automatically mapped for me.
Start a new module
• Install the migrate module
• Create a new module that extends classes
that are in the migrate module
Sunday, October 6, 13
Important functions
• addFieldMapping()
• addSimpleMappings()
• defaultValue()
• sourceMigration()
• addUnmigratedDestinations()
• addUnmigratedSources()
Sunday, October 6, 13
Just to get a flavor of what you will be using.
Module structure
• .info file: file list
• .module file: specify migrations via
hook_migrate_api()
• Migration class files: handle the details and
mappings of a migration
• name: sitename_migration
Sunday, October 6, 13
.info file: Mainly lists files that are used.
.module file: register migrations and their classes by using hook_migrate_api().
Migration class files: I generally prefer one class per file, but there's nothing wrong with
having multiple classes in one file too.
Directory list
Sunday, October 6, 13
.info file
Sunday, October 6, 13
.module file
Sunday, October 6, 13
class file
Sunday, October 6, 13
How did you find out?
• Comments in the migrate module
• migrate_example module (inside migrate)
• articles on btmash.com
Sunday, October 6, 13
Additional Docs
• Source code
• Suggestions in IDE
• Migrate handbook at drupal.org/migrate
Sunday, October 6, 13
Before enabling custom
migrate module
Sunday, October 6, 13
Migration class
• Set description
• Define database source
• Create query to get data
• Tell migrate that this query is the source of
this migration
• Do the mappings
Sunday, October 6, 13
Set description
Sunday, October 6, 13
Set database
Sunday, October 6, 13
Define the query
Sunday, October 6, 13
Set the source
Sunday, October 6, 13
Set the destination
Sunday, October 6, 13
Set up table mapping
Sunday, October 6, 13
Enables migrate to map source rows to destination rows
Map first field
Sunday, October 6, 13
Enable the module
Sunday, October 6, 13
Do live demo of migrating this basic amount, using the UI.
List of migrations & their status.
Status of mappings.
Note equivalent tools in drush.
Mapping process
• Add fields as needed to the query
• Add mappings until the mapping screen
clear.
Sunday, October 6, 13
Adding fields will usually mean adding joins.
Mapping a subfield
Sunday, October 6, 13
Mapping a reference
From a ProductHelpMigration
Sunday, October 6, 13
Self references
• Handles creating references to same
import
• Uses a createStub function
Sunday, October 6, 13
Mapping a file field
Sunday, October 6, 13
Term References
• Use a dependent migration
• Or create as needed
Sunday, October 6, 13
Repeats
• "Update" completely overwrites
• Highwater mark
Sunday, October 6, 13
In addition to rollback and reimport.
highwater mark, important for bringing in added content.
brings in any new items with a greater value of highwater than last recorded.
No other comparisons. (no import "changed")
Manipulating source
data
• prepareRow() function
Sunday, October 6, 13
migrate_extras
• Provides support for many contrib modules
• Addressfield, entity api, more
• Excellent examples of custom handlers
Sunday, October 6, 13
Migrate
• Showed important parts
• There's a LOT more there
Sunday, October 6, 13
QA. Did it work?
• Regardless whether upgrade or migrate
• Have someone else check your work
• Have the client check your work
• Pass any existing acceptance tests
Sunday, October 6, 13
Make certain. This will be the content of the next version of this site.
QA Questions
• Correct content?
• Correct versions of content?
• Complete number of fields?
• Complete metadata? (urls, relations, dates,
authors, tags)
• Complete number of nodes?
• Images and media? (block live site)
Sunday, October 6, 13
Conclusion (?)
• traditional upgrade
• migrate
Sunday, October 6, 13
If you want something that is quick and your site's upgrade path supports it, go with a
traditional upgrade.
If you want to make a lot of structural changes and need fine control over the upgrade path,
go with migrate.
Deployment
• Same issues as replacing any site, unless the
D6 site is incredibly simple.
Sunday, October 6, 13
Future of upgrades
• Upgrades are challenging
• Migrate is being added to Drupal 8 core, to
provide a smooth upgrade path from D6
and D7 core.
http://www.drupal4hu.com/node/381
Sunday, October 6, 13
Bookmarks
• http://drupalcode.org/project/drupal.git/
blob/refs/heads/7.x:/UPGRADE.txt
• https://drupal.org/project/drush_sup
• http://drupal.org/project/migrate
• http://drupal.org/project/migrate_d2d
• http://drupal.org/migrate
• http://drupal.org/project/coder (upgrade)
• http://drupal.org/project/hacked
• http://drupal.org/project/upgrade_status
Sunday, October 6, 13
Ad

More Related Content

What's hot (20)

Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8
Acquia
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and GotchasUpgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and Gotchas
Suzanne Dergacheva
 
Reliable Drupal Partner
Reliable Drupal PartnerReliable Drupal Partner
Reliable Drupal Partner
AddWeb Solution Pvt. Ltd.
 
Introducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview ProblemsIntroducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview Problems
Acquia
 
Drupal Migrations in 2018
Drupal Migrations in 2018Drupal Migrations in 2018
Drupal Migrations in 2018
Pantheon
 
Drupal 8 Vocabulary Lesson
Drupal 8 Vocabulary LessonDrupal 8 Vocabulary Lesson
Drupal 8 Vocabulary Lesson
Mediacurrent
 
DocOps — The Analytical Window to Your Customer’s Experience with Wade Clements
DocOps — The Analytical Window to Your Customer’s Experience with Wade ClementsDocOps — The Analytical Window to Your Customer’s Experience with Wade Clements
DocOps — The Analytical Window to Your Customer’s Experience with Wade Clements
Information Development World
 
New DevOps for the DBA
New DevOps for the DBANew DevOps for the DBA
New DevOps for the DBA
Kellyn Pot'Vin-Gorman
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
Angela Byron
 
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
Eneko Jon Bilbao
 
Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment
XebiaLabs
 
Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...
Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...
Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...
Acquia
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
Howard Greenberg
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Acquia
 
Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...
Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...
Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...
Edureka!
 
Continuous Delivery & the Database- The Final Frontier
Continuous Delivery & the Database- The Final FrontierContinuous Delivery & the Database- The Final Frontier
Continuous Delivery & the Database- The Final Frontier
DBmaestro - Database DevOps
 
Continuous Delivery & the Database - the Final Frontier
Continuous Delivery & the Database - the Final FrontierContinuous Delivery & the Database - the Final Frontier
Continuous Delivery & the Database - the Final Frontier
XebiaLabs
 
How to choose Enterprise tools to build out your Continuous Delivery toolscape
How to choose Enterprise tools to build out your Continuous Delivery toolscapeHow to choose Enterprise tools to build out your Continuous Delivery toolscape
How to choose Enterprise tools to build out your Continuous Delivery toolscape
XebiaLabs
 
OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020
Graham Acres
 
Top 10 DBA Mistakes on Microsoft SQL Server
Top 10 DBA Mistakes on Microsoft SQL ServerTop 10 DBA Mistakes on Microsoft SQL Server
Top 10 DBA Mistakes on Microsoft SQL Server
Kevin Kline
 
Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8Everything You Need to Know About the Top Changes in Drupal 8
Everything You Need to Know About the Top Changes in Drupal 8
Acquia
 
Upgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and GotchasUpgrading to Drupal 8: Benefits and Gotchas
Upgrading to Drupal 8: Benefits and Gotchas
Suzanne Dergacheva
 
Introducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview ProblemsIntroducing Workspace Preview System: Solve Your Content Preview Problems
Introducing Workspace Preview System: Solve Your Content Preview Problems
Acquia
 
Drupal Migrations in 2018
Drupal Migrations in 2018Drupal Migrations in 2018
Drupal Migrations in 2018
Pantheon
 
Drupal 8 Vocabulary Lesson
Drupal 8 Vocabulary LessonDrupal 8 Vocabulary Lesson
Drupal 8 Vocabulary Lesson
Mediacurrent
 
DocOps — The Analytical Window to Your Customer’s Experience with Wade Clements
DocOps — The Analytical Window to Your Customer’s Experience with Wade ClementsDocOps — The Analytical Window to Your Customer’s Experience with Wade Clements
DocOps — The Analytical Window to Your Customer’s Experience with Wade Clements
Information Development World
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
Angela Byron
 
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
2016 Mastering SAP Tech - 2 Speed IT and lessons from an Agile Waterfall eCom...
Eneko Jon Bilbao
 
Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment Streamlining Deployments in a Large Websphere Environment
Streamlining Deployments in a Large Websphere Environment
XebiaLabs
 
Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...
Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...
Integrating Drupal and Native Applications: The Story of the Elle Decor LookB...
Acquia
 
OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020OpenNTF Webinar, May 19, 2020
OpenNTF Webinar, May 19, 2020
Howard Greenberg
 
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Lightning Distribution for Drupal: Build Advanced Authoring Experiences in Dr...
Acquia
 
Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...
Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...
Nagios Monitoring Tool Tutorial | Server Monitoring with Nagios | DevOps Trai...
Edureka!
 
Continuous Delivery & the Database- The Final Frontier
Continuous Delivery & the Database- The Final FrontierContinuous Delivery & the Database- The Final Frontier
Continuous Delivery & the Database- The Final Frontier
DBmaestro - Database DevOps
 
Continuous Delivery & the Database - the Final Frontier
Continuous Delivery & the Database - the Final FrontierContinuous Delivery & the Database - the Final Frontier
Continuous Delivery & the Database - the Final Frontier
XebiaLabs
 
How to choose Enterprise tools to build out your Continuous Delivery toolscape
How to choose Enterprise tools to build out your Continuous Delivery toolscapeHow to choose Enterprise tools to build out your Continuous Delivery toolscape
How to choose Enterprise tools to build out your Continuous Delivery toolscape
XebiaLabs
 
OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020OpenNTF Webinar Series: DQL with John Curtis September 2020
OpenNTF Webinar Series: DQL with John Curtis September 2020
Graham Acres
 
Top 10 DBA Mistakes on Microsoft SQL Server
Top 10 DBA Mistakes on Microsoft SQL ServerTop 10 DBA Mistakes on Microsoft SQL Server
Top 10 DBA Mistakes on Microsoft SQL Server
Kevin Kline
 

Viewers also liked (8)

Understanding Taxonomy, Drupal Camp Colorado, June 2009
Understanding Taxonomy, Drupal Camp Colorado, June 2009Understanding Taxonomy, Drupal Camp Colorado, June 2009
Understanding Taxonomy, Drupal Camp Colorado, June 2009
David Lanier
 
Drupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDrupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 version
David Lanier
 
Designing and Theming Drupal for Mobile Devices
Designing and Theming Drupal for Mobile DevicesDesigning and Theming Drupal for Mobile Devices
Designing and Theming Drupal for Mobile Devices
David Lanier
 
Bloom's Digital Taxonomy: The Swiss Army Knife of 21st Century Learning
Bloom's Digital Taxonomy: The Swiss Army Knife of 21st Century LearningBloom's Digital Taxonomy: The Swiss Army Knife of 21st Century Learning
Bloom's Digital Taxonomy: The Swiss Army Knife of 21st Century Learning
Mark Richardson
 
Bloom taxonomy presentation
Bloom taxonomy presentationBloom taxonomy presentation
Bloom taxonomy presentation
sudha pandeya/pathak
 
Bloom’s taxonomy
Bloom’s taxonomyBloom’s taxonomy
Bloom’s taxonomy
Keilandra Scruggs
 
Taba model of curriculum development
Taba model of curriculum developmentTaba model of curriculum development
Taba model of curriculum development
I E R umiversity of peshawar
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse
 
Understanding Taxonomy, Drupal Camp Colorado, June 2009
Understanding Taxonomy, Drupal Camp Colorado, June 2009Understanding Taxonomy, Drupal Camp Colorado, June 2009
Understanding Taxonomy, Drupal Camp Colorado, June 2009
David Lanier
 
Drupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 versionDrupal upgrades and migrations. BAD Camp 2013 version
Drupal upgrades and migrations. BAD Camp 2013 version
David Lanier
 
Designing and Theming Drupal for Mobile Devices
Designing and Theming Drupal for Mobile DevicesDesigning and Theming Drupal for Mobile Devices
Designing and Theming Drupal for Mobile Devices
David Lanier
 
Bloom's Digital Taxonomy: The Swiss Army Knife of 21st Century Learning
Bloom's Digital Taxonomy: The Swiss Army Knife of 21st Century LearningBloom's Digital Taxonomy: The Swiss Army Knife of 21st Century Learning
Bloom's Digital Taxonomy: The Swiss Army Knife of 21st Century Learning
Mark Richardson
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
Kirsty Hulse
 
Ad

Similar to Upgrades and migrations (20)

Off the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your OrganizationOff the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your Organization
Rick Vugteveen
 
Top 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies makeTop 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies make
Iztok Smolic
 
Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
Kathryn Carruthers
 
OpenStack and Ceph case study at the University of Alabama
OpenStack and Ceph case study at the University of AlabamaOpenStack and Ceph case study at the University of Alabama
OpenStack and Ceph case study at the University of Alabama
Kamesh Pemmaraju
 
Case Study: University Alabama-Birmingham.
Case Study: University Alabama-Birmingham.Case Study: University Alabama-Birmingham.
Case Study: University Alabama-Birmingham.
Red_Hat_Storage
 
Introduction into Drupal site building
Introduction into Drupal site buildingIntroduction into Drupal site building
Introduction into Drupal site building
Iztok Smolic
 
Drupal, git and sanity
Drupal, git and sanityDrupal, git and sanity
Drupal, git and sanity
Charlie Morris
 
Pure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkPure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talk
Bryan Ollendyke
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
Matt Weaver
 
Top 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal projectTop 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal project
Iztok Smolic
 
Introduction to Drupal 7 - Getting Drupal up and running
Introduction to Drupal 7 - Getting Drupal up and runningIntroduction to Drupal 7 - Getting Drupal up and running
Introduction to Drupal 7 - Getting Drupal up and running
Kalin Chernev
 
Upgrading to Drupal 7
Upgrading to Drupal 7Upgrading to Drupal 7
Upgrading to Drupal 7
DesignHammer
 
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Spark Summit
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Paul McKibben
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
Chapter Three
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week Update
Angela Byron
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
BlueData, Inc.
 
Drupal 5 to Drupal 7: WETA.org Makes the Leap
Drupal 5 to Drupal 7: WETA.org Makes the LeapDrupal 5 to Drupal 7: WETA.org Makes the Leap
Drupal 5 to Drupal 7: WETA.org Makes the Leap
jesseves
 
Off the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your OrganizationOff the Treadmill: Building a Drupal Platform for Your Organization
Off the Treadmill: Building a Drupal Platform for Your Organization
Rick Vugteveen
 
Top 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies makeTop 20 Drupal Mistakes newbies make
Top 20 Drupal Mistakes newbies make
Iztok Smolic
 
OpenStack and Ceph case study at the University of Alabama
OpenStack and Ceph case study at the University of AlabamaOpenStack and Ceph case study at the University of Alabama
OpenStack and Ceph case study at the University of Alabama
Kamesh Pemmaraju
 
Case Study: University Alabama-Birmingham.
Case Study: University Alabama-Birmingham.Case Study: University Alabama-Birmingham.
Case Study: University Alabama-Birmingham.
Red_Hat_Storage
 
Introduction into Drupal site building
Introduction into Drupal site buildingIntroduction into Drupal site building
Introduction into Drupal site building
Iztok Smolic
 
Drupal, git and sanity
Drupal, git and sanityDrupal, git and sanity
Drupal, git and sanity
Charlie Morris
 
Pure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talkPure Speed Drupal 4 Gov talk
Pure Speed Drupal 4 Gov talk
Bryan Ollendyke
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
Matt Weaver
 
Top 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal projectTop 20 mistakes you will make on your 1st Drupal project
Top 20 mistakes you will make on your 1st Drupal project
Iztok Smolic
 
Introduction to Drupal 7 - Getting Drupal up and running
Introduction to Drupal 7 - Getting Drupal up and runningIntroduction to Drupal 7 - Getting Drupal up and running
Introduction to Drupal 7 - Getting Drupal up and running
Kalin Chernev
 
Upgrading to Drupal 7
Upgrading to Drupal 7Upgrading to Drupal 7
Upgrading to Drupal 7
DesignHammer
 
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Spark Summit
 
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016
Paul McKibben
 
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Building a Drupal Distribution using Features, Drush Make, Installation Profi...
Ben Shell
 
High Performance Drupal
High Performance DrupalHigh Performance Drupal
High Performance Drupal
Chapter Three
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week Update
Angela Byron
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
BlueData, Inc.
 
Drupal 5 to Drupal 7: WETA.org Makes the Leap
Drupal 5 to Drupal 7: WETA.org Makes the LeapDrupal 5 to Drupal 7: WETA.org Makes the Leap
Drupal 5 to Drupal 7: WETA.org Makes the Leap
jesseves
 
Ad

Recently uploaded (20)

How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 

Upgrades and migrations

  • 1. Upgrades and Migrations, how? David Lanier @nadavoid ThinkShout Sunday, October 6, 13
  • 2. Overview • Getting your Drupal 6 site onto Drupal 7 • Use traditional upgrade or migrate data to new site • Look at the benefits and drawbacks of both approaches Sunday, October 6, 13 Your site is unique, so take what you find today and let it help you in your decision making. I won't be saying always do it one way. Both approaches do require work.
  • 3. An Architecture Metaphor • Changing the foundation (codebase) of your house Sunday, October 6, 13 Do you lift the house and swap out the foundation? Or do you build a new house on a new foundation, then move your stuff in?
  • 4. Basic pieces • Codebase (core, modules, themes, libraries) • Database • Files (images, pdfs, mp3s, etc.) Sunday, October 6, 13 Files = content. Database & Files together = "data"
  • 5. Upgrade overview • Swap out the foundation, house in place. • Replace codebase, run upgrade scripts on existing data & files. • Built into core and contrib. • UI based Sunday, October 6, 13 Lift the house, swap in a new foundation, set the house down on the new foundation. The upgrade scripts essentially upgrade the plumbing and wiring to be compatible with the new foundation. UI centered, but drush can be used for most upgrades as well. 'drush updb'
  • 6. Migrate overview • Build new house on a new foundation. • Build new site. Import data from old site. • Write custom code to define the specifics of the migration. Sunday, October 6, 13 The details of a migration must be handled by writing custom code. There is also helpful support in the UI.
  • 7. Feeds • Best fit is to regularly import new data. • Not usually a good fit for full migrations. • It is easy to learn, but it usually falls short when getting into the details, such as handling relationships and very large datasets. Sunday, October 6, 13 I really like feeds, and it can be super for importing data into Drupal. But it's just not a module I generally recommend for a full site migration.
  • 8. Which way do I go? • Why do you want to go? Sunday, October 6, 13 First thing to think about is why specifically do you want to move to Drupal 7? Are there architectural things that need to be changed in your site, in order to take advantage of what you want from D7?
  • 9. Traditional upgrade if: • Drupal site, only one version back • Simple site • Few contrib modules • End result should mirror current site • Content is infrequently updated • A little downtime is OK Sunday, October 6, 13 Downtime can still be avoided, using good deployment methods. Also, if limited time is available (and the other conditions are met).
  • 10. Traditional upgrade downsides • Hard to get rid of legacy cruft • Field names • Content type structures • Anything else that seems old or odd Sunday, October 6, 13
  • 11. Migrate if: • Drupal 5 site, or even a different platform • Complex site • Many contrib modules • New site needs structural changes or enhancements • Content is frequently updated • Minimal downtime is very important Sunday, October 6, 13
  • 12. Migrate downsides • Very code-centric • Very granular Sunday, October 6, 13 Averse to custom coding? Maybe prefer upgrade. But Migrate isn't so hard, I promise! Granular: you generally have to specify everything (image alt, title, language, etc.). Of course, that could also be a good thing. You're in full control.
  • 13. Initial preparation • Regular D7 system requirements (drupal.org/requirements) • Local development environment that can support several copies of the site Sunday, October 6, 13 D7: PHP 5.3 recommended, MySQL 5. Local Dev: for testing, experimenting, practicing
  • 14. Architecture of current site • Inventory of modules, libraries, themes •drush pml | grep Enabled • Content Types, fields • Views, other configuration • Important pages, capabilities, workflows • Reference copy of the site Sunday, October 6, 13 Save lists of directories (list of modules) Save drush output Save certain pages Have a clear idea of exactly what it is you're upgrading from
  • 15. Determine upgrade path • Module to D7 options • same module (pathauto) • different module • moved into core (CCK to fields) • nothing available, so custom solution Sunday, October 6, 13 This is where most of the work will be. Be sure to check if D7 version of modules have their own dependencies. Views adds a ctools dependency. Others will likely require the libraries module.
  • 16. Determine upgrade path • Custom modules • Converting 6.x modules to 7.x: http://drupal.org/node/224333 Sunday, October 6, 13 Any custom code will need to be updated to match the Drupal 7 API and coding standards.
  • 17. Determine upgrade path • Theme • Update or replace base theme • Update or rebuild subtheme • Upgrading 6.x themes to 7.x https://drupal.org/node/254940 Sunday, October 6, 13 A custom theme is custom code, so needs same attention.
  • 18. Prepare the source • Install a copy of the site to use as the source. • Remove all disabled or unused modules. • Update all remaining modules to their latest D6 versions. Sunday, October 6, 13
  • 19. How to Upgrade • Practice on a copy of the site. • Pristine copy of site for reference. • Copy of site with everything D6 updated. • Copy that is actually getting upgraded. Sunday, October 6, 13
  • 20. Today's Example • RidePDW.com Portland Design Works • Portland company that develops bicycle accessories Sunday, October 6, 13 I experimented with an upgrade, but ended up doing a migration instead.
  • 21. Process • Commit after each step. • Definitely after updating each module. • Include db exports. Sunday, October 6, 13 DB Exports: if not in the repo, in their own folder.
  • 22. Upgrade Core • Refer back to your list of all enabled modules • Disable all enabled contrib modules • Switch theme to Garland, including the admin theme Sunday, October 6, 13
  • 23. Upgrade core • Use the copy of the site that you have for actually upgrading • Replace core files manually • Delete core directories & files • Add the new ones • Download Drupal, move the files into place Sunday, October 6, 13 I generally prefer to swap in the new files/folders, rather than building up a new codebase. (List of "incompatible" modules helps me know where I am)
  • 24. Update the database • Do 'drush updb' • Watch output, observe warnings • Save output to refer back to Sunday, October 6, 13
  • 29. Core upgrade complete! • Yay! • You're running Drupal 7 now • Commit the current state to a repo • Next step, contrib modules Sunday, October 6, 13
  • 30. Upgrading contrib modules • Upgrade one at a time • Module's d.o page • Module's README.txt or INSTALL.txt or UPGRADE.txt • Check for special steps, instructions • Check for new dependencies Sunday, October 6, 13 Do a little research on each module before trying. Then go ahead and try. Dependencies: views needs ctools. ubercart needs rules. rules needs entity.
  • 31. Add the new code • This works: drush dl modulename • Or, delete existing, then add the new Sunday, October 6, 13
  • 32. Where to start? • Start with the most foundational • ctools • views • Or most standalone • pathauto • devel Sunday, October 6, 13
  • 33. Views • Replace views code • Update database • Enable the upgraded module Sunday, October 6, 13 This seems to be the usual process. But it's still best to see the module's upgrade documentation first.
  • 37. Upgrade CCK • Download D7 version of CCK • Enable the content_migrate module • Use the UI to migrate CCK fields to drupal core fields Sunday, October 6, 13 Kind of a special case, because it's a major architectural change, bringing fields into core. Also common pattern: contrib module providing upgrade path into core.
  • 38. Available fields Sunday, October 6, 13 Provides suggestions of things to do, and notes about what it will do. Caveat: it lets you migrate fields, even if the relevant content type does not yet exist properly in the upgraded site. Should content types come before fields?
  • 41. Migrate CCK fields • Install required modules • Enable modules that define content types • Sometimes several layers of dependencies emerge Sunday, October 6, 13 nodereference is used to refer to products. Products are defined by ubercart. Ubercart requires Rules. Rules requires entity api.
  • 42. How to Migrate • Building a whole new house, with its own new foundation. • Then we will move all of our data into it. Sunday, October 6, 13
  • 43. Plan and get organized • Collect data and files into a safe place, to use as a pristine, read-only source. • Make a spreadsheet or list to plan out your mapping • Build out the architecture of the new site Sunday, October 6, 13 Identify questionable or troublesome pieces, e.g. whether to keep certain fields. Build: at least content types & fields. Anything else that is needed by your migrated data.
  • 44. Set up environments • Install or get access to a reference site • Install source database • Install a built destination site • An IDE for exploring the migrate API Sunday, October 6, 13 reference site = this is how it currently is. must be inspectable.
  • 45. migrate_d2d • Not discussing migrate_d2d in depth today. Sunday, October 6, 13 Not migrate_d2d: - complicated things for me as a newcomer to the migrate framework. - Added too many layers and did not streamline things for me. - Had to unmap many things that it automatically mapped for me.
  • 46. Start a new module • Install the migrate module • Create a new module that extends classes that are in the migrate module Sunday, October 6, 13
  • 47. Important functions • addFieldMapping() • addSimpleMappings() • defaultValue() • sourceMigration() • addUnmigratedDestinations() • addUnmigratedSources() Sunday, October 6, 13 Just to get a flavor of what you will be using.
  • 48. Module structure • .info file: file list • .module file: specify migrations via hook_migrate_api() • Migration class files: handle the details and mappings of a migration • name: sitename_migration Sunday, October 6, 13 .info file: Mainly lists files that are used. .module file: register migrations and their classes by using hook_migrate_api(). Migration class files: I generally prefer one class per file, but there's nothing wrong with having multiple classes in one file too.
  • 53. How did you find out? • Comments in the migrate module • migrate_example module (inside migrate) • articles on btmash.com Sunday, October 6, 13
  • 54. Additional Docs • Source code • Suggestions in IDE • Migrate handbook at drupal.org/migrate Sunday, October 6, 13
  • 55. Before enabling custom migrate module Sunday, October 6, 13
  • 56. Migration class • Set description • Define database source • Create query to get data • Tell migrate that this query is the source of this migration • Do the mappings Sunday, October 6, 13
  • 59. Define the query Sunday, October 6, 13
  • 60. Set the source Sunday, October 6, 13
  • 62. Set up table mapping Sunday, October 6, 13 Enables migrate to map source rows to destination rows
  • 63. Map first field Sunday, October 6, 13
  • 64. Enable the module Sunday, October 6, 13 Do live demo of migrating this basic amount, using the UI. List of migrations & their status. Status of mappings. Note equivalent tools in drush.
  • 65. Mapping process • Add fields as needed to the query • Add mappings until the mapping screen clear. Sunday, October 6, 13 Adding fields will usually mean adding joins.
  • 67. Mapping a reference From a ProductHelpMigration Sunday, October 6, 13
  • 68. Self references • Handles creating references to same import • Uses a createStub function Sunday, October 6, 13
  • 69. Mapping a file field Sunday, October 6, 13
  • 70. Term References • Use a dependent migration • Or create as needed Sunday, October 6, 13
  • 71. Repeats • "Update" completely overwrites • Highwater mark Sunday, October 6, 13 In addition to rollback and reimport. highwater mark, important for bringing in added content. brings in any new items with a greater value of highwater than last recorded. No other comparisons. (no import "changed")
  • 72. Manipulating source data • prepareRow() function Sunday, October 6, 13
  • 73. migrate_extras • Provides support for many contrib modules • Addressfield, entity api, more • Excellent examples of custom handlers Sunday, October 6, 13
  • 74. Migrate • Showed important parts • There's a LOT more there Sunday, October 6, 13
  • 75. QA. Did it work? • Regardless whether upgrade or migrate • Have someone else check your work • Have the client check your work • Pass any existing acceptance tests Sunday, October 6, 13 Make certain. This will be the content of the next version of this site.
  • 76. QA Questions • Correct content? • Correct versions of content? • Complete number of fields? • Complete metadata? (urls, relations, dates, authors, tags) • Complete number of nodes? • Images and media? (block live site) Sunday, October 6, 13
  • 77. Conclusion (?) • traditional upgrade • migrate Sunday, October 6, 13 If you want something that is quick and your site's upgrade path supports it, go with a traditional upgrade. If you want to make a lot of structural changes and need fine control over the upgrade path, go with migrate.
  • 78. Deployment • Same issues as replacing any site, unless the D6 site is incredibly simple. Sunday, October 6, 13
  • 79. Future of upgrades • Upgrades are challenging • Migrate is being added to Drupal 8 core, to provide a smooth upgrade path from D6 and D7 core. http://www.drupal4hu.com/node/381 Sunday, October 6, 13
  • 80. Bookmarks • http://drupalcode.org/project/drupal.git/ blob/refs/heads/7.x:/UPGRADE.txt • https://drupal.org/project/drush_sup • http://drupal.org/project/migrate • http://drupal.org/project/migrate_d2d • http://drupal.org/migrate • http://drupal.org/project/coder (upgrade) • http://drupal.org/project/hacked • http://drupal.org/project/upgrade_status Sunday, October 6, 13