Leading you towards the right upgrade from Drupal 7
October 22 2021
14 min read
Are you aware of the fact that Drupal 7 end-of-life (EOL) is fast approaching? There is not much time left till November 2022. So, it's now the high time for the site owners and developers to make some major decisions regarding the Drupal 7 upgrade. What upgrade paths for Drupal 7 do we have? Shall we move from Drupal 7 to Drupal 8? Or, directly move from Drupal 7 to Drupal 9? This article will help you take the next right step for your organization’s website and help your developers get ready for such a change of upgrade that will enable them to reach their career heights.
It’s almost the end of life(EOL) for Drupal 7
Due to the prevailing situation of COVID 19, Drupal 7's end-of-life (EOL) date has changed from November 2021 to November 28, 2022. But here the important point is are you still working on Drupal 7? Because if you are doing so, it’s the right time to think about the further upgrades as with the Drupal 7 end of life , it’s official support from the Drupal community will come to an end, which includes support for updates, security fixes and improvements from the Drupal Security Team and the Drupal Association. However, I also agree with the fact that Drupal 7 won’t immediately break on its EOL day as you would still get vendor extended support from a group of approved and vetted vendors. At the same time we also cannot deny the reality that Drupal 7 has already started to get less community support with the upgrades of Drupal 8 and 9. More importantly, it lacks official community security support which is a big concern for the site owners and the organizations. Since, websites store and use personal data such as CCPA and GDPR that needs to be protected by the organizations, the sites which do not stay up-to-date with security fixes can be prone to major security risks and vulnerabilities. Additionally, after Drupal 7 EOL, there won’t be any availability of new themes, modules and features that are significantly essential for every website. Therefore, Drupal 7 cannot be an ideal CMS platform to work upon for the next decade for sure. So, upgrading Drupal 7?
What is the best time to upgrade?
It’s totally up to you how you want to go about the upgrade. You can either migrate via Drupal 8 or directly to Drupal 9, but the only important thing is that you need to start the migration process as soon as possible. So, if you plan to upgrade your site from Drupal 7, you will have to look upon some information architecture work in order to be well prepared for Drupal 8 or 9 upgrade. Once you migrate to Drupal 8, the shift to Drupal 9 will be very easy, you’ll have to check upon code deprecations, without worrying about the content migration. But wait a minute. Are you planning to wait for a much stable version of Drupal 9? If yes, that exactly won’t work as Drupal 9 seems to be handled much like that of an incremental point-release upgrade to Drupal 8. Infact, the core code which strengthens Drupal 9, is already disclosed in Drupal 8. Also, there aren't any new features in the Drupal 9.0 release, only the removal of code which already has been deprecated in Drupal 8’s minor versions. Drupal 9 plans to release new features every six months in minor releases with Drupal 9.1 and 9.2 already having been released with experimental Olivero frontend theme, early support to WebP image format and many other feature enhancements. Go for an upgrade to Drupal 9 today.
Making an upgrade to Drupal 8
Ideally you can go for an upgrade to Drupal 8 first, and then eventually to Drupal 9. Since your site requires functionality with modules which are found in Drupal 8 but not yet in Drupal 9 release, therefore, upgrading first to Drupal 8 can be very convenient. Also, on upgrading to Drupal 8 first, the upgrade to Drupal 9 will become a lot easier for you.
Drupal 7 to 8 migration involves some important changes. So, basically some of the things you earlier required to do across contributed modules in Drupal 7, are included in Drupal 8 core now. Although, the process of implementing them might not be the same as some refactoring may be needed to get feature parity while you go for a migration to Drupal 8. The Drupal 7 to Drupal 8 migration issues are pretty well talked about by most of the Drupalists but it’s also a well known fact that when it’s done, the resulting site proves that it’s worth an effort.
Before upgrading your Drupal 7 site to Drupal 8, it is advisable to take some necessary steps that guarantee you a seamless upgrade process and help you get the suitable outcomes.
Understanding the module of the source site
It is very essential that you understand how exactly your current Drupal 7 site is built before you start your upgrade. You need to recognize the core and contributed modules that are facilitated on your source Drupal 7 site. In order to do this, you can look after the listed modules on the Modules admin page (Administer > Site building > Modules) or make use of the Available Updates page at admin/reports/updates. Drupal 8 upgrade web user interface provides a summary of the modules which can be automatically upgraded or not. You can get more information on this analysis by referring to the Upgrade using the web browser page. By using an external service, the Upgrade Check module provides you a time estimate for an upgrade.
Looking over the Known Issues Page
Since the path of upgrade from Drupal 7 to Drupal 8 is yet experimental and some core modules may not completely have an upgrade path. It is advisable to go through the Known Issues Page while preparing for the upgrade.
Updating the Drupal 7 site to use the latest versions of core and contributed modules
The upgrade process demands you to update your old site to the latest minor version first. For instance, if you’re running your site on Drupal core 7.35, you will have to first update to Drupal 7.38. If you plan to migrate configuration or content from contributed modules automatically, then you need to use the latest versions of them.
Need of prerequisites for upgrading from Drupal 7 to 8
If you choose to upgrade to Drupal 8 using the browser user interface, you will be required to facilitate the ‘Migrate Drupal UI’ core module. Using Drush, if you migrate to Drupal 8, you will also require Drush 8 or Drush 9 and the three respective modules such as Migrate Upgrade, Migrate Tools and Migrate Plus.
Enabling required core and contributed modules in Drupal 8
The Drupal migration procedure will not automatically install modules on the Drupal 8 destination site. Migrations that are appropriate for modules installed on both the destination site and source will be implemented. Consequently, you will have to first enable all core and contributed modules over the Drupal 8 site for the one you want to migrate configuration and content from the source site.
Configuration of the Drupal 8 site to be avoided
Since, the upgrade procedure will overwrite configuration on the Drupal 8 site, so you are not supposed to get involved in any configuration of the Drupal 8 site until after the upgrade procedure is finished. It means you do not need to create all the types of content and fields manually before running this upgrade. Rather as a part of the migration procedure, the migrate module will create them. Indeed it is the best practice to install Drupal 8 by using the Minimal install profile, as the Standard profile presents its own configuration which you may not wish to use.
Content creation on the Drupal 8 shall be avoided
The upgrade procedure looks after the unique identifiers from the source site. For instance, if any user account had the unique ID 2 on the source site (hence was at the relative URI/user/20, after the upgrade the same user account will be at the /user/2 on the Drupal 8 site. If you had to create a user account over the Drupal 8 site other than the default administrator account, then it would be given user ID 2, while running the upgrade procedure, with user ID 2, the account from the source site would overwrite it. This can be applied to taxonomy terms, user accounts, node content, and any other types of content consisting of numeric IDs from your source site. Until all your source content gets completely imported, do not create anything on the Drupal 8 site manually to avoid loss of data.
Finally, performing the upgrade
There are two ways to implement the migration process.
The first method is by using the browser user interface. It is the easiest method and can be done with the help of the user interface of the Drupal 8 site. Also, it provides lesser control across the migration.
The second method is by using Drush. This process is faster and robust and enables selective migration, yet needs additional modules, and also needs to be run from the command line.
Making an upgrade to Drupal 9
In this section let's find out how to upgrade Drupal 7 to Drupal 9. What is the best time to move from Drupal 7 to 9? Have you ever thought about Drupal 7 to 9 migration directly and skipping over Drupal 8 completely? Well you can do that since the Drupal 7 migration ecosystem is yet available in Drupal 9. In fact, Drupal 9 includes the similar migrate drupal module which you require to migrate to Drupal 8. You just need to be clear of the fact that all of the considerations while upgrading from Drupal 7 to Drupal 8 must be applied even if you straight away move to Drupal 9 as well. There is a need to manage the migration planning, handle tooling and paradigm shifts and take into consideration the platform needs. Therefore, upgrading from Drupal 7 to Drupal 9 can be really smooth and easy.
If your site still hasn’t migrated to Drupal 8, then directly making a big shift to Drupal 9 is a convenient option as now the Drupal 9 is already released.
Benefits of Drupal 9
This section will specify to you the benefits of Drupal 9. It can be considered as one of the most recent iterations of the Drupal framework and content management system.
Accessibility of contributed module functionality in core
One of the most important benefits of Drupal 9 is that many of the things that require contributed modules in Drupal 7 are built into core now. This includes:
Handling Drupal dependencies with the Composer tool
Drupal 9 widely uses third party libraries like Symfony for important functionality, instead of depending on custom Drupal-specific code for nearly everything. As a result, it further gives rise to the need of handling Drupla’s dependencies on those libraries. This can be better managed by a tool known as Composer which is a great dependency manager.
No requirement of features for configuration management
Some of the sites in Drupal 7 deploy configuration by making use of the Features module that always receive mixed feedback relying on the various insights of people. However, the majority of developers express that Drupal 9’s Configuration Management system, which enables database configuration to be exported to YML files, is far more easier than the Drupal 7 Features system.
Drupal 9 focuses on Headless CMS to enhance the user experience with the strong front-end of the website that provides significant features such as create once and publish everywhere, API-First approaching, simpler resourcing and front-end freedom.
How to prepare your Drupal 7 or 8 site for Drupal 9? Let’s look at the upgrade process and get a clear understanding.
1. Planning the migration process
If you’re planning to migrate your current site’s content into a secure and modern platform, then these three factors such as time and budget, developer skill set and release window will help in making the right choice.
Time and budget
You need to have a proper clarity about the time needed for replatforming and also the budget for your project. These plannings will help in preventing unexpected delays in your migration process. Also, you might wish to split your migration into various phases depending on the budget constraints within your organization. For example, if you find that getting the budget is simpler as a one-time-ask, then make a plan to get your complete migration, with any further additional site changes in just a single attempt. On the contrary, if budgeting over phases appears like a much better option, then accordingly spread your migration plan. Most importantly, you need to ensure that you plan the timelines in advance so that your project doesn’t extend overtime.
Developer skill set
Are your developers working on Drupal 7 for a long time? If the answer is yes, then they might face some difficulties while migrating to Drupal 9, since it will require them to learn new tools and techniques. The developers learning curve shall be factored into time and budget, not just because of the migration itself but also for the current development work and maintenance post the upgrade. You can partner with a well-known experienced Drupal development firm to plan and implement your migration in a much smoother and quicker manner.
While planning your migration from Drupal 7 to 9, also keep in your mind that Drupal 7 is all set to reach its end-of-life in November 2022. As a result, you shall complete your migration process by then. If you have any doubt that your enterprise might not make it then you should plan for an Extended Support engagement in order to maintain your site security till you’re able to finish the migration.
You might wish to plan the release window over key dates for your enterprise, and over many other support windows in your stack. For instance, supposedly, you’re a retailer and you might want to complete the migration before the end of Q3, so that you do not have to upgrade during the holiday initiatives. Talking about your stack, you will surely wish to plan around other important release windows like end-of-support for PHP versions, and upgrading towards Symfony 4.4. This is essentially important in the case where you necessitate upgrading dependencies to support your Drupal 9 migration.
2. Understanding the architecture, features and design
Since the shift from Drupal 7 to Drupal 9 is so significant, it can be a good time to revisit the information architecture of the site, perform a feature audit, and decide whether to make design changes or not.
Are you planning to update your site’s information architecture?
Before you migrate to Drupal 9, you need to perform an audit of your current Drupal 7 site to get an understanding of what you would want to take forward and what you wouldn’t take along. For example, if you are using a taxonomy which was set many years ago, but currently doesn’t make any sense. So, presently, it can be a good idea to refine it for your site’s new version. Let’s look into one more example, supposedly, if you have set up a content type which you rarely used once or twice, and never used again. Then instead of migrating it, you can delete that content.
Does your feature need changes?
As we know, it's been a decade since the release of Drupal 7, so, the features that seemed significant at Drupal 7's inception have certainly changed. Here, some questions come to mind like how have the feature requirements of your content editors changed? Has your site turned up to be media-heavy, and do your content editors require huge searchable image archives?
Well many editors prefer the new Layout Builder experience for creating customized site pages. But this is something that doesn’t exist in Drupal 7 core, and is possibly better than what you get after extending Drupal 7 with contributed modules. On the contrary, Drupal 8 and 9 have built-in media handling and a WYSIWYG editor, eliminating the requirement for dozens of Drupal 7 contributed modules which do not always get along with each other, and emphasizing developers observation upon the editorial UX for a single authorized solution.
So, revisiting the necessities of your content editors and site users to identify the current features status in regards to usability or need of new features overall help in the upgrading process.
Are you ready for a design update?
Have you refreshed your Drupal 7 site design? If you haven’t done that in years then the upgrade process can be a good time for a design refresh. You can plan for a design refresh after the upgrade is finished.
3. Performing the Drupal upgrade
Since Drupal 8’ initial release, the process of migrating from Drupal 7 to Drupal 8 has improved but it can still be a very complicated and time consuming procedure for complex sites.
Unlike the previous Drupal upgrades, Drupal 8 migration isn’t an automatic upgrade. Drupal 7 site’s configuration and content are migrated individually into a new Drupal 8 site. To automate the creation of migration files, there are tools available but if your site is a complex one which uses many contributed modules or a lot of custom code, you will go so far only with automated tools. You will have to revisit business logic and choose new options to attain results that are similar or even deprecate the use of Drupal 7 contributed modules and also custom code in your site to make a shift to Drupal 8 and 9.
Keep in mind that whether you choose to upgrade to Drupal 8 and then Drupal 9, or directly migrating from Drupal 7 to 9, the process and the migration considerations will certainly be the same.
Get an insight through the following webinar where the significance of migrating to the later versions of Drupal 7 is explained.
Making an upgrade to other CMS
Along with the options of Drupal 8 and 9, you also have the option to migrate your site to a different CMS before Drupal 7 reaches end-of-life. Backdrop CMS is a flexible, lightweight and modernized platform which is built on Drupal 7 architecture with significant improvements. This platform selects smaller budget projects which are majorly concerned with websites that provide content via traditional HTML pages. It also has its own security team which closely works with the Drupal security team.
It’s a known fact that upgrading comes with a lot of challenges. But as you start planning, things fall in place with the right approach and process. In this article, I tried giving you all the possibilities for a smooth migration from Drupal 7 to its later versions which is absolutely necessary since we all are heading towards Drupal 7 EOL.
Leading you towards the right upgrade from Drupal 7