hero-1

Why migration from Drupal 7 to Drupal 9 is a big deal in 2023

The list of supported Drupal versions was reduced again: support for Drupal 8 came to the end on November 2, 2021. The same was to happen to Drupal 7, but the Drupal Association decided on rolling out updates till January 2025.

We can see that many of Drupal websites are still running on Drupal 7 — around 400,000 according to the statistics. We realize that the difference between these two CMS versions bodes a lot of work and basically the site is to be made from scratch. However, the difficulties of web development are not so bad as the losses your business might suffer from the neglected website. If the correlation between the former and the latter is not so obvious to you as it is to us, we’re going to explain everything right now, for the sake of clarity formulating the headers as questions you may ask yourself.

What risks do I take by letting my site run on Drupal 7?

Drupal has a clearly planned schedule of core updates: major, minor and including some small changes in operation (the so-called patch releases). It is amended only in exceptional cases, as was the case with the prolongation of Drupal 7 support. Developers are paying more and more attention to the new versions and less attention to the previous ones. The core code is not updated and gets obsolete, and the site becomes vulnerable to hacker attacks.  

The same can be said about the modules underpinning all special features of your site. The modules have their owners, as well as the supporting community. If the module owners suddenly decide on upgrading their site from Drupal 7 to Drupal 9, the same will affect the modules – having been updated to the new CMS version, they will no more work correctly with the old versions and, as is the case with the core, will turn into a backdoor for ill-intentioned guys. Unloadable pages or undesirable ads are a small evil as compared with blackmailing and threats of deleting or leaking your and your users’ data. This is also the reason why you should find a qualified team of web developers to update the Drupal core, modules, and other software timely.
 
Here's what the developer at the ADCI Solutions Evgeny says about a real-life case:

We’re often approached with a request to clear some sites of viruses and we believe this happens due to security issues on the hosting or because the Drupal core or its modules were not updated in a timely manner. One such trojan moved across hosting services, deleting all databases it could reach; but for regular updates, the loss might have amounted to enormous sums

What makes Drupal 9 so good as compared to Drupal 7?

Ideological differences between the Drupal versions can be traced back to Drupal 8 that emerged in 2015. At the time, developers appreciated the fact that Drupal now had the same database as the PHP framework Symfony and, consequently, programming in Drupal was now based on the principles of object-oriented programming. In this respect, Drupal 9 is so close to its predecessor that it’s conventionally called the next version of Drupal 8.

Benefits for the developer:

  • State-of-the-art technology stack and popular solutions that lower the entry barrier for novices and PHP developer who work with Drupal for the first time;
  • Some of the most popular modules are included in the core, which removes the need to update them separately from the core;
  • The package manager Composer is used to control dependencies and files in the core and to add modules and themes; 
  • The system of configuration export and import;
  • Development is based on the Headless Drupal principle where we use Drupal as the RESTful server. 

Benefits for the admin and content manager:

  • Out-of-the-box functionality and modules which were not available in Drupal 7 or which were available as contrib modules: 
    • Views is the most popular multipurpose module in Drupal 7 without which no project can start;
    • Tour shows tips on the interface. Many modules include such tips in their functionality;
    • Layout builder allows convenient management of the page appearance and content, for example, make it possible to display the content in two columns instead of one;
    • CKEditor allows the content manager to work with the content using the WYSIWYG technology;
    • In-place editor lets you edit the content (e.g. correct misprints) directly on the page without opening the admin panel;
    • Settings tray again makes it possible to manage some settings directly on the page with the content;
    • Media allows managing files and images;
    • Web services (such as JSON:API);
    • The editorial workflow previously organized by Workbench Moderation or Workflow modules.
  • New tools are created based on these innovations. For example, profile Site Studio by Acquia where you can build your website without programming;
  • Dependencies and update are managed using a couple of commands in Composer;
  • Nice theme Claro you can enable immediately after installation.

Benefits for the business owner:

  • Long-term support reduces the risk of intrusion and, consequently, the cost of patches;
  • The site becomes somewhat faster by using the new PHP version, giving up heavy JavaScript libraries and using new cache modules. This makes the site work faster while retaining users and improving the rank in search engines;
  • The low entry barrier makes it easier to search for developers;
  • New business expansion opportunities. 

Let’s explain the latter advantage using an example. You have an online store based on Drupal 7. In Drupal 9 it’s possible to use Drupal as the RESTful server just out of the box. When moving the site and setting up REST based on the existing store you can create a mobile application or some IoT solutions, e.g. self-checkout as in McDonald’s.

Artem Zenkovets, Drupal developer at ADCI Solutions says:

The site users are not likely to feel the difference between the old site on Drupal 7 and the new Drupal 9 site. Here the project itself plays a significant role: if you migrate a site with poor UI/UX, nothing is going to change. And since the migrated project is basically started from scratch, this is a good opportunity to get rid of the legacy and/or eliminate the drawbacks

How can I prepare for migration from Drupal 7 to Drupal 9?

Drupal 7 and Drupal 9 operate based on different paradigms. This is why the common piece of advice would be to prepare for a long and costly migration, and our recommendations will help you to organize this process.

  1. Look at the site with fresh eyes and see what can be changed and what can be removed. You might have overlooked an obsolete interface or non-operational user scenarios, and some pages are now not necessary altogether – don’t bring them along or schedule a redesign.
  2. Check whether your modules are working with Drupal 9 or Drupal 8 and in case they are not supported anymore select some replacement. If Drupal 8 modules have no obsolete code, most probably they will work with Drupal 9.
  3. Delete the content you don’t need.
  4. Make backups of the database (and generally make regular backups).
  5. Don’t create a new custom code.
  6. Select a new hosting or check whether it’s possible to update the old one to meet the new system requirements.

Alexander Shmakov, Drupal developer at ADCI Solutions:

“Migrating the behavior of each custom module is often very expensive. You have to define what functionality you really need, what can be replaced by something similar from contrib modules, what should be dropped and what should be developed from scratch after learning the business logic”.

What system requirements should be met?

To enable correct operation of a Drupal 9 site, it’s necessary to select some specific software. It is listed below.

PHP:

  • 7.3;
  • 7.4;
  • 8.0;
  • 8.1.

Databases:

  • MySQL 5.5.3 or newer with InnoDB as the repository;
  • MariaDB 5.5.20 or newer with InnoDB as the repository;
  • Percona Server 5.5.8 or newer with InnoDB as the repository;
  • PostgreSQL 10.0 or newer with the ph_trgm extension;
  • SQLite 3.6.8 or newer.

Web server:

  • Apache 2.4.7 or newer;
  • Nginx 0.7.x or newer;
  • Microsoft IIS 5 or newer;
  • Built-in web server PHP 5.4.0 or higher. Recommended for testing purposes only.

How much will I pay for the migration if I have only an online business card? And if an online store?

Nobody would give a definite answer without studying the project thoroughly first. All sites are different and even no two identical online business cards exist.

Sometimes the migration from Drupal 7 to Drupal 8 is just about moving the content – which is actually also rather difficult – and developing a new theme for the new design, which is individual every time. And sometimes this is about developing complex business logic.

Migration to Drupal 9 is the development of a new site. The content is the only thing that remains and you don’t need to create it anew. The cost of this procedure and the ways to accelerate it and make it cheaper will always be dictated by the project peculiarities.

Useful links

  1. Drupal usage statistics
  2. Drupal releases cycle

You might also like