Drupal 10 migration and upgrade service

Drupology provides a comprehensive Drupal 10 migration service for any version of Drupal prior to 10.

In summary, it's fairly straightforward to perform a Drupal 10 migration from Drupal 6, 7, 8 or 9 as long as the right approach is taken.

We're happy to discuss your migration requirements with you so we can provide some ballpark figures and explain what would be involved for your specific Drupal site.

Please do get in touch to find out more, or read below for a reasonably detailed explanation of our process.



Drupal 6, Drupal 7, Drupal 8 and Drupal 9 migration to Drupal 10

Drupal 10 is a complete rewrite of the platform compared to Drupal 7, bringing in all the advantages of the Symfony framework. Drupal 10 is built on top of a stable, well used code base that invites participation from thousands of other developers outside of the Drupal world. And of course, we can take advantage of thousands more components from the Symfony world created by those developers. This is what open-source is all about and represents a huge step in the right direction. Building Drupal 10 sites and migrations is more stable, and gives us access to millions of lines of efficient and secure code from the Symfony world.

So this is a good thing, but in terms of migrating an older version of Drupal site (i.e. 7 or less) to Drupal 10, it means essentially rebuilding the website. HOWEVER, there are a lot of well maintained migration modules that can help make this process much quicker and easier than you may think, and it's probably not as big a job as it sounds.

Generally, our Drupal 10 migration service following this process: -

Audit the existing site prior to the Drupal 10 migration

The first step is to audit the existing website. We need to check what modules are being used and why they were chosen. Your custom modules and themes are checked so we can understand what they are for, and how they are responsible for behaviours on the Drupal website.

There is a very handy module that can help do a lot of this heavy lifting. "Upgrade status" will check the current site and build a report stating which modules are available for Drupal 10, as well as listing any issues we need to be aware of. Having upgraded and migrated many Drupal 7 sites to Drupal 8,9 and 10, we are going to be familiar with most of the gotchas.

From a combination of the status report, and manual checking, a migration report is written detailing the plan for the Drupal upgrade.

Existing Drupal entity analysis

Entities are the blocks of data that the website holds. This could be pages (nodes), users, taxonomy terms, commerce orders, etc. Anything that has data in it. We look at all the fields used by these entities. In Drupal 10 there are many modules to choose from, and probably there will be some things developed on the Drupal 6 or Drupal 7 site that are not following best practice. So part of the migration strategy is to identify any better modules to manage the data, and ensure there is an upgrade and migration path to get the data into a more suitable format in Drupal 10.

Upgrade the Drupal 6 or Drupal 7 site and clean up

The first action to take when migrating to Drupal 10 is to get a local copy of the current website up to date with Drupal core and all the contributed modules. This ensures then when the migration plugins run, they are reading values from a database structure that is expected. We also remove any modules and uninstall if they are no longer required - this is quite often the case as previous developers try and test modules. The same is done with things like Views, etc. Are they all required? Anything that is not necessary is removed. Don't worry, this is on a copy of the website, not the live one!

Create the Drupal 10 migration plugins

Drupal out-the-box is quite good at migrating most of the content and entities if there are equivalent modules in Drupal 10. However, this may not be the case, and it's possible a better fit is available.

Migration plugins are small pieces of code that define the relationships between the existing Drupal 6 or Drupal 7 structures and the new Drupal 10 migrated structures. For example, field collections may have been used, but for Drupal 9 we would want to use the Paragraphs module. The migration plugin will take the field collection structure and explain how this should be mapped to the paragraphs module. Sounds simple enough? It it for us and we've done it many times.

Test and run the migration plugins

On a fresh Drupal 10 install, we enable all the required modules and run the Drupal 10 migration plugins from a command line. The migration plugin code will read from the local copy of the Drupal 6 or Drupal 7 database and automatically create all the content types, user types, taxonomies, etc, as well as migrate the content into the new entities. No doubt there will be some migrations that aren't quite right, so we check and validate the data, repeating until the Drupal migration is successful.

Rebuild the site functionality in Drupal 10

Now that the structure of the content types and other entities are in place. we can begin to build the site structure. A lot of sites are driven by Views, and even these can be migrated in a lot of cases. For anything that can't be migrated, it is rebuilt using a clean and fresh approach to the development.

Rewrite custom modules

Any custom modules have been checked. Maybe there's now a contributed module that can do the same job? If so then we'll use this in line with best practice. In cases where we need to rewrite, a Drupal standard compliant module will be written to meet the requirements.

Rewrite the Drupal theme

Drupal 10 uses a different framework for theming. Now everything uses Twig, which is a modern templating system much better suited for our purposes. The existing theme is rewritten, taking as much of the CSS as possible, unless a rebranding is required at the same time. We write using clean SCSS complied into small CSS files with everything arranged logically and efficiently, following best practice.

Testing and launch

QA testing takes place at regular intervals to ensure we are on track with your migration. Any final tests are completed and any issues identified are resolved. 

When it comes to launching, it's very possible there is additional content, commerce orders, etc, on the current website. The existing site is put into read-only mode, and a final migration takes place to get everything new over, using the migration plugins we created earlier.

Finally the new site goes live!

Drupal 8 and Drupal 9 to Drupal 10 migration and upgrade service

Drupal 8 and Drupal 9 to Drupal 10 migrations are much simpler because the underlying structure is almost identical.

This is very straightforward and takes very little time. It's just like upgrading from Drupal 10.x to Drupal 10.y.

Additional checks are required on any custom modules and the theme to ensure no deprecations are in place. If they are, we fix them, and it's all good to go.

Drupal 10 migration and upgrade service summary

As we said, it's fairly straightforward to migrate a Drupal 6, 7, 8 or 9 site to Drupal 10 as long as the right approach is taken.

We're happy to discuss your requirements with you so we can provide some ballpark figures and explain what would be involved for your specific site.

Please do get in touch, and let's discuss how we can help.

Get in touch

5 + 12 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

This form collects your name, telephone number (optionally) and email address only so we can contact you back about your enquiry. We do not and will never use your data for any other purposes other than contacting you regarding this enquiry and no data is shared with any third-party.