Here comes another article, which has been in the blog's draft section since the start of 2017. In this article, I will share my notes on performing a major Drupal upgrade from 7 to 8 with multilingual support.

As a Drupal developer, I've been pretty conservative and don't rush for upgrades just because of upgrades, but here I was working with a website which was almost 8 years old (built from scratch on Drupal 7 in 2011)

What I don't like when upgrading from Drupal 7 to 8, is that the upgrade requires a fresh install of Drupal 8 site. Unfortunately, there are no still the magical one-click upgrade button (It's 2019 and not 2007, right)

In this Drupal tutorial, I will use the real example with actual content, modules and some custom fields - the site is not over customized, but it has some customization.

Let's start with a fresh Drupal 8 installation, follow this guide to learn more: How to Install & Config Drupal 8 on Ubuntu 14.04 + Ngnix

I own several Linode VPS's and deployment of new Drupal site took me about 5 minutes, depending on your hosting provider and your skills it might differ - but basically that's nothing complicated,

During the installation process I opted to install a minimal version as I love to take full control of settings enabled, but feel free to choose standard configuration profile.

Now, let's see how to perform an actual site and content upgrade

Make sure these modules are enabled on your Drupal 8 site: "Migrate," "Migrate Drupal," and "Migrate Drupal UI." A quick note, in Drupal 8, modules are renamed to Extend, though the path still is the same - /admin/modules

For migrating multilingual content from Drupal 7 (i18n) enable Migrate Drupal Multilingual

Modules to enable to migrate Drupal 7 to 8

Modules to enable to migrate Drupal 7 to 8

Next, visit the /upgrade page. When you do you will see this screen:

Confirm upgrade

Confirm upgrade screen

Press Continue to configure your migration source (see screenshot below). Enter the database credentials and path of your Drupal 6 or 7 site's files ( and press Review upgrade. If your Drupal 6 or Drupal 7 site uses a database prefix, be sure to expand the Advanced options and provide that prefix. Under the Source Files enter  local file directory containing your site (e.g. /var/www/docroot), or your site address (for example http://example.com).

Review upgrade screen

Review upgrade screen

If the database credentials are correct, the upgrade review page will list the sources and destinations existing or missing based on modules present on the source site. The page provides a summary of the upgrade paths found and missing and then details the missing ones first:

Drupal 7 upgrade to Drupal 8

Drupal 7 upgrade to Drupal 8

You cannot do anything directly on this page to fix these missing migrations. Some of them may just be missing implementations that need to be developed while others signify modules not installed on the destination site

Hit on Perform Upgrade button.

Running Drupal 8 upgrade screen

Running Drupal 8 upgrade screen

It took some time and the website was finally upgraded to Drupal 8

Upgraded Drupal 8 website

Upgraded Drupal 8 website

There are still many things to do, like creating new or applying existing Drupal 8 theme.

Also, I should note, that not all body field contents were transferred during this upgrade. On the other hand that's the only major issue, I faced during this Drupal upgrade. As the site was not massive, under 100 nodes in total, I was able to recreate missing content parts manually by just copy/pasting from live Drupal 7 site to Drupal 8 site.