Migrating Drupal 7 to Modern Drupal in 2023

An Update on the State of the Tools

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 so I settled in to figure it all out. 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, which I'll just refer to as "Modern Drupal" from here on in.


After installing a fresh version of Modern Drupal, I enabled 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 to be migrated 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 felt like magic.

I hit "Review upgrade", confirmed that my existing site content may be overwritten (Not a problem since I'm migrating into 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, menus (including links), custom blocks and more were migrated into my new Modern Drupal 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 hate to dampen the initial excitement but I will say there was a warning page 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 Modern Drupal, the fact that dozens of modules automatically got upgraded feels like a huge win. Of the 44 that got updated automatically, over 20 were D7 modules that had made it into Modern Drupal Core.)

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 my Modern Drupal site. 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) Modern Drupal site, populated with content from Drupal 7. This feel-good story may not apply to your situation, but it reminds us that upgrading Drupal isn't always a slog and that the tools to do it have evolved and are very impressive.

Roadmap Your Drupal 7 Transition

We’re offering free 45 minute working sessions to help you assess your organizations level of risk, roadmap your transition plan, and identify viable options!

Drop us a note, and we’ll reach out to schedule a time.