Migrate Drupal 7 into Drupal 10

We don't want to say migrations are quick and easy, but…

While checking over some of our older Drupal 8 migration content for accuracy, I decided to fire up a fresh Drupal 10 instance and run through its out-of-the-box migration experience, which includes the ability to migrate from older Drupal versions. I happened to have a Drupal 7 site lying around and some time on my hands, so I settled in to figure it all out. (True, this functionality has been around since Drupal 8, but for me it has been a while and I wanted to confirm how it works in Drupal 10.)

Preparation

After installing a fresh version of Drupal 10, I installed the three core Migration-related modules: Migrate, Migrate Drupal, and Migrate Drupal UI. The status message presented to me upon successful installation helpfully invited me to "Proceed to the upgrade form."

Successfully installed Migrate, Migrate Drupal, and Migrate Drupal UI.

After going to the Drupal Upgrade page (in the admin UI), I only needed to do two things:

  1. Choose the "Drupal version of the source site".
  2. "Provide credentials for the database of the Drupal site you want to upgrade".

Selecting "Drupal 7" in step 1 was trivial and because I had a database copy of the Drupal 7 site on my local machine, providing the connection credentials for step 2 wasn't much harder.

Selecting Drupal 7 and providing database connection credentials.

(There is also a section to add a path for files, but I wasn't concerned with that for my purposes and was able to leave it blank.)

What happened next always seems like magic.

I hit "Review upgrade", confirmed that my existing site content may be overwritten (Not a problem since I'm working with a fresh site install that has no content!) and let Drupal perform the migration.

You may lose data.

In less than a minute, over 10 content types (including custom fields of many different types: Image, File, Entity Reference etc.), taxonomy vocabularies and their terms, custom blocks, menus (including links) and more were migrated into my new Drupal 10 site. Holy smokes! I didn't have to do anything manually: no field mappings, no migration configuration through yml files. I just had to click through a simple wizard. That was it!

Okay, I didn't want to dampen the excitement by telling you about the warning page I saw before clicking "Perform upgrade". Drupal knew that the old Drupal 7 site has many modules that won't be automatically updated and told me about it. In my case, there were 102 modules that would not be upgraded, but 44 that would! (For anyone familiar with the architectural jump from Drupal 7 to Drupal 8, the fact that dozens of modules automatically got upgraded feels like a huge win.)

102 modules will not be upgraded.

Despite the warning, the migration ran successfully and now I have all my content, content types, taxonomy terms, menus and more in Drupal 10. Yes, there's still work to do in checking for lost functionality and to apply a new theme, but what a great starting point!

Migration successful!

It literally took me only a matter of minutes to go from nothing to a working (albeit barebones) Drupal 10 site, populated with content from Drupal 7.