Drupal 8 Upgrade Path

All this excited talk of Drupal 8 has a lot of people dreaming of the day they get to start working with it. Some people get to build new sites from scratch all the time, but a lot of Drupal work out there is maintaining and upgrading existing sites. How will the Drupal 8 upgrade path work, and will it be as shiny as Drupal 8 itself? Well, upgrades will be radically different in Drupal 8, and I'd say it has all the shiny you could possibly want.

What Is This Migrate You Speak Of?

The classic Drupal upgrade method, good ole update.php, will no longer be used for major upgrades (e.g. 7.x to 8.x). That handy little script is only going to work on minor version updates for Drupal 8 (e.g. moving from 8.0.0 to 8.1.0). In place of that script, we now have the Migrate module in Drupal core. Instead of "updating" the site, you will now "migrate" to the next major version. Now, that could sound scary if you've never migrated a Drupal site before, but trust me, this is a great innovation for core.

More and more sites, ours included, have moved beyond the old update.php script. When we upgraded our site from Drupal 6 to 7, we wanted to change a lot of things at the same time. We wanted to take advantage of Drupal 7's new features and apply things we had learned since we built the original site. It made a lot more sense for us to build a new Drupal 7 site the way we wanted it, and then just move our content and users to their new home. We used Migrate module to do this, and more and more people have been using this tactic for big upgrades. (You can learn more about the contributed Migrate module in our Importing Data with Migrate and Drupal 7 series.)

Now, with Migrate moved into Drupal 8, this growing best practice is baked into core. You can use the new core Migrate API to not just upgrade your Drupal 6 or 7 sites to Drupal 8, but you can also use it to create your own migrations from other sources. You could, say, write a migration to move a Wordpress site to Drupal. Or you could even build a new Drupal site, and then fill it up with data from a spreadsheet. The Migrate API gives us a lot more flexibility when working with data we want to pull into our new site.

What's the Current Status?

As with all things Drupal 8, not everything about Migrate in core is complete yet. The Migrate API is in core, as the Migrate module. Additionally there is a Migrate Drupal module, which has the mappings you'll need to upgrade your site to Drupal 8. Currently most things are in place for a Drupal 6 to 8 migration, and the community is looking for people to help by testing it out and seeing where things still need to be tweaked. There is also ongoing work on the Drupal 7 migration as well, but it isn't in core yet. The current plan is to release Drupal 8.0.0 with the Drupal 6 to 8 migration ready to go, and then the Drupal 7 migration will be released with Drupal 8.1.0 or 8.2.0.

Why are we starting with Drupal 6 migrations instead of Drupal 7? Well, it has to do with community support for old versions. When Drupal 8 is released, Drupal 7 will still be supported until Drupal 9 comes out. Drupal 6, on the other hand, is going to lose support (i.e. security updates) three months after Drupal 8 is released. This means that creating a path for folks to move off of Drupal 6 as quickly as possible is a more pressing issue than Drupal 7.

Learn More

There are a lot of resources popping up on the web for Drupal 8 migrations. You can get the basic picture in the Drupal.org handbook pages for Upgrading from Drupal 6 or 7 to Drupal 8. There is actually a lot more useful information right now in the Introduction to migrate D6 to D8 subpage.

To get your feet wet, start playing around, and help with testing, here are a few good resources to get you started:

And, last but not least, if you'd like to get more involved with this effort, you should join the IMP group.

Comments

Thanks for the great post & resources at the bottom, Addison! I'm dreading my first D6-to-D8 site migration, but your information gives me a little more peace of mind (thanks, Migrate!). Very interesting to see that the new paradigm is not to 'update' but to 'migrate' to newer versions of D8 without update.php. Keep us posted! :)

Hi Addison, I am starting a new site using many of the new features in D8 and will need to upgrade from D8 dev to production will migrate help with this?

Hi Mike,

The current priority for Drupal 8 is to get the beta upgrade path working so that people can begin using D8 without this hassle. There is a core Meta issue (https://www.drupal.org/node/2341575) for this if you want to keep up with where things are and how to help out with getting it completed. Most notably, comment #19 (https://www.drupal.org/node/2341575#comment-9363487) gives some pointers for working in beta now.

All sounds promising. I never upgraded from Drupal 6 to Drupal 7. There's a bug in Views 6.x-2.x that causes upgraded views to break, and Drupal 7 is Views 7.x-3.x only. And CCK Node Reference has no upgrade path to Entity references, which is required by Drupal 7 and 8. Hopefully Drupal 8 migration solve these upgrade blockers, or offer a workaround.

Everybody is talking about the Database(Content) migration from drupal 6/7 to 8 using Migrate module.
what about the code migration/upgrade/update/rebuild ?
I have drupal 7.34 project with 100 contrib modules and custom templates(No TWIG),
how can i make this code working with drupal 8 core system ?
shall i need to rebuild my complete site using drupal8 (which is symfony 2) ?

Srikanth, the code for all modules will also need to be upgraded. A lot of work has already started with that. A good source right now to check on the status of popular modules is http://www.bluespark.com/status-top-100-contributed-modules-drupal-8. You will need to upgrade any custom code you have written. The general workflow will be to set up your new site with Drupal 8 core and contrib, and then use the built-in migration paths to move your content and configuration into that new site. Also, keep in mind that Drupal 7 will be supported for several more years so there is no rush to upgrade to Drupal 8 unless you have a compelling reason.

Hi Addison,
It's now June 2016. I've just spent the last 2 weeks trying to migrate my D7.43 site to D8.1.2. No go. I followed all the instructions very carefully and am getting nowhere. After creating a NEW D8 site, with a DB built by core/install and attempt to use /upgrade, I get error messages that almost nothing has an upgrade path, including core features (CCK, color, entity, etc.). When I try to use drush migrate-upgrade I get [module] is busy migrating, followed by a failure in the registration module. I have posted my problems in the forums and as Drupal issues, but have received no answers. I am running on Windows 10, with Apache 2.4, PHP 5.6 and MySQL 5.6. I've read posts that say 5000 sites have upgraded, but I can't seem to get my really trivial site upgraded (no code, no modified modules, no 3rd-party modules).

Hi Dennis,

That's frustrating. :-/ Migrations are definitely still not 100% yet and it has changed quite a lot since this blog post was written a year and a half ago. Which instructions were you using to do your migration? Are you using material on our site, like Will's post about Custom Drupal-to-Drupal Migrations with Migrate Tools (https://drupalize.me/blog/201605/custom-drupal-drupal-migrations-migrat…)?

This is a little obsolete, isn't it? "There is also ongoing work on the Drupal 7 migration as well, but it isn't in core yet. The current plan is to release Drupal 8.0.0 with the Drupal 6 to 8 migration ready to go, and then the Drupal 7 migration will be released with Drupal 8.1.0 or 8.2.0."

Yep, you are correct. This blog post was written in 2014, before Drupal 8 was even released, so it should be expected to be out of date. If you'd like to stay up on the latest migration information, you should check out our Drupal 8 Migration series (https://drupalize.me/series/drupal-8-migration). All of our regular tutorials are kept up to date with the latest version of Drupal, while blog posts are not.

Add new comment

Filtered HTML

  • Web page addresses and email addresses turn into links automatically.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code class> <ul type> <ol start type> <li> <dl> <dt> <dd><h3 id> <p>
  • Lines and paragraphs break automatically.

About us

Drupalize.Me is the best resource for learning Drupal online. We have an extensive library covering multiple versions of Drupal and we are the most accurate and up-to-date Drupal resource. Learn more