The Drupal 8 upgrade is well worth the effort. Just be sure to follow these tips and prepare well.
We recommend not performing a Drupal 8 upgrade on a live site.
Unlike previous major upgrades, the change to Drupal 8 does not automatically upgrade your website in-place. Instead, it pulls in configuration information and content from the source site. The process does not modify your source site in any way, but it’s still a good idea to do the upgrade on a site that is not live.
Before You Upgrade…
Before upgrading your site for a fresh installation of Drupal 8, do not configure the website, but do these things:
- Enable the core module “Migrate Drupal”.
- Have access to the Drupal 6 or 7 database from the host where Drupal 8 is installed.
- Have access to the source site’s files.
- If only public files are used, they’re accessible through the site’s address.
- If you need to migrate private files, the new Drupal 8 site needs direct access to the files directory.
- If migrating private files from Drupal 7, configure Drupal 8 file_private_path in settings.php before running the upgrade.
- On the Drupal 8 site, install and enable “Migrate Upgrade”.
- Running the upgrade from Drush? You need Drush 8 and the Module Migrate tools.
Pause Here for a Question
Are you experienced and/or confident with Drupal?
It can be very tough for a non-Drupalist to write code. Get help from established Drupal service experts.
Even if you are familiar, what if something goes wrong and you have to start over? Do you know how to run queries in the database to delete entities and drop tables created in the migration process? Again, it would be best to outsource for help. It will cost far less in time wasted.
The New Drupal Migration System
The system for upgrading Drupal sites has been re-written for Drupal 8, largely inspired by the work of the Drupal 7 Migrate and Drupal-to-Drupal Data Migration modules. It is much more robust and the functionality of the new modules is greatly expanded so that they now handle both site configuration and content.
Migrate is now included in the Drupal core to make an easier pathway for upgrading from versions 6.x and 7.x to Drupal 8.
<Migrate>: Handles migrations. Contains core framework classes, destination, source and process plugins, schemas and definitions. At last, it also contains the migration config entity, schema and definition.
<Migrate Drupal>: Contains migrations from older Drupal versions. Includes implementations of destination, sources and process plugins for Drupal 6 and 7. But this module doesn’t contain the configuration to migrate all data from your older Drupal site.
In the “process” folders, you can find examples that will help you write new ones. As with any open source, writing your own code is part of it all, so familiarize yourself with these samples. To find them, use these commands:
find ./ -type d -name ‘migration_templates’
find ./ -type d -name ‘process’
Drupal 6 to Drupal 8 – Special Considerations
Upgrading from Drupal 6 to 8 is trickier than from 7 due to the changes in code.
- Node Types. In Drupal 8, unlike in 6, the default types are Article and Basic Page instead of Story and Page content types. The migration will recreate the Story type, but re-use the Page type. To simplify things, you may want to delete the Article type.
- URL Aliases. You’ll need to enable a new language on the new Drupal 8 site when migrating URL aliases for a language.
- Menu UI. The menu_primary_links_source and menu_secondary_links_source are not used in Drupal 8 so they aren’t migrated over.
- Modules and Themes. Before starting the migration, new modules and themes should be enabled and the admin theme (if there is one) set.
- Profile Categories and Profile Field (List Selection). Fields grouped by the Profile module in Drupal 6 won’t be grouped in the Drupal 8 upgrade. The “allowed values” setting of the resulting field in Drupal 8 will be a combination of all selected user values and the current allowed values in Drupal 6.
- Date Formats. For Drupal 8, only the default formats (short, medium and long) are migrated. All others need to be reconfigured after migration.
Consider if it’s time to rethink your content or even your overall content strategy. Drupal has always been at the forefront of structured content modeling and the toolkit has only expanded with this new version. Is now the time to start aiming your system to support a mobile app, or an even broader omni-channel strategy?
For Drupal 8 upgrade, as with any upgrade, there are always costs that make you wonder if you need an automatic solution or a developers writing software, or even if your in-house team should handle it.
A personal consultation to examine the cost of manual vs. automatic migration is always a wise idea.