This is a question we’ve all been asked time and again, about our personal and professional lives. The same question is applicable to software technologies too, what’s new in smartphones, what’s new in operating systems or what’s new in digital experiences.
Coming to Drupal, what’s new is Drupal 9 and all of its amazingness and what’s coming next is Drupal 10 and all its mind-boggling new innovations.
Yet, many Drupal sites are still on the older versions, Drupal 7 having the highest proportion.
Frankly, these numbers surprised me. So, I had to be sure and went on to Drupal.org to validate the proportions even more.
Over 500,000 websites are still on Drupal 7.
To be honest, there isn’t anything wrong with being on an older version, but there aren’t any benefits either. If the important thing for you is to ensure your site runs smoothly, Drupal 7 is great.
However, if you fear missing out on some cool new features, then migration is something you should start thinking about.
And the latter reason is the purpose of me writing this blog.
I want to let you know how you can make the move from Drupal 7 to 9 smoothly along with the benefits you would be getting from it. And to nudge the site owners, who are still indecisive about upgrading from Drupal 7 to Drupal 9, to take the leap of faith and kickstart the migration for a better suited digital experience.
Why Drupal 9?
The Drupal 9 upgrade is a big commitment, why should you make it? What’s in it for you?
This is the first thought that comes to your mind when you think about the migration process, which to be completely and brutally honest is going to be daunting considering you are running a Drupal 7 site.
You ought to have some really impressive incentives to make you want to take on such a massive task.
And Drupal 9 doesn’t fail in that aspect. There is plenty it has to offer, you just have to be willing.
When any major version of Drupal is launched, it is prioritised over any other version, meaning new features and security measures are more inclined to come with the new upgrade.
Consequently, the shelf life of the previous versions gets an expiration date looming over them. Now, this doesn’t mean that those versions would cease to exist altogether. No, that’s not the case.
The EOL means that the version it is associated with will stop getting official support, bug fixes and patches won’t happen much, if at all, as the focus has shifted to the newer version. Consequently affecting the maintenance of your website.
Let’s understand this with another predicament:
Drupal 7 sites used to run on PHP 5.3 and some are on that version even now. However, the latest version of PHP is 7.4 and it isn’t at all compatible with Drupal 7.
Can you guess what it is perfectly compatible with? I’ll let you figure that out on your own.
So, the EOL is basically a nudge from Drupal to get on with the upgrade. Here is an illustration explaining the same.
PS: The EOL for Drupal 8 has already come and gone because the upgrade from the 8 version wasn’t as complicated. Although the end of life date for Drupal 7 has been fixed as November 2023, it will be reevaluated annually.
The Enticement of Hundreds of New Features Bi-annually
Drupal is a thing of fascination, with the umpteen features it has to offer, it is apt to say so. Compared to Drupal 7, Drupal 9 is a whole other ball game with massive capabilities built into its core.
And Editorial Workflows;
All come out-of-the-box in Drupal 9, unlike Drupal 7 where most features come as contributed modules.
Let’s check out some of the best D9 has in its wonderful package.
Layout Builder is built-in and changes the way we use blocks on page layouts. Crafting new layouts with reusable blocks on every part of the page to customise it in any way you want to. More on Layout Builder here.
Media handling comes in core as well, you won’t need to hassle around with a million configurations. What’s more is that with the media library you can easily manage and reuse media like a pro.
Want to play with other software capabilities as well? The built-in JSON:API will support your ambition of creating a REACT based frontend with Drupal at the back. Building progressively and fully decoupled applications is not difficult anymore. Read this guide on decoupled Drupal to know more.
Since Drupal 7 didn’t have such features in its core, the maintenance of the contributed functionality was a massive undertaking. However, with Drupal 9, that’s not the case.
Having more features in core simplifies the maintenance, even if you have some contributed modules, keeping them aligned would be much easier and less of a conflict.
The Very End of Daunting Migrations
The upgrade from Drupal 7 to Drupal 8 or 9 is going to be the last major overhaul of your site. Trust me. The image below is proof of what I am saying.
Drupal 7 and Drupal 8 were entirely different in their makeup, hence, they weren’t compatible and the upgrade is more tedious than most of us would like.
But Drupal 9 comes with backward compatibility, making it and other future upgrades easy, as they will use the same data, configurations and modules used in Drupal 8.
So, once you have migrated to Drupal 8 or 9, you would never ever have to regard an upgrade as tedious.
The Composer and Configuration Advantage
Composer is a new concept for developers who have been working with Drupal 7. Why? Because of Symfony, which is another new feature in Drupal 8 and 9.
Drupal 8 and 9 have been known to use third party libraries, Symfony being one of them.
Although these third parties provide added functionality, they have dependencies, which have more dependencies and managing them can become a bit of a hassle. You can probably guess that.
Now, Composer lands into the picture and becomes the hero by managing all the dependencies like a pro. There is a better dependency manager out there, if you ask me. However, it’s abilities don’t end there, you can also make use of it for managing patches from Drupal.org.
Another great addition in Drupal 8 and 9 is the lack of Features modules.
I know some of you would disagree. Regardless, I would say that when database configuration is exported to YML files, configuration management is immensely simplified, don’t you agree?
The Business Value
Finally, Drupal 8 and 9 can help you enhance your business’ appeal to your audience. Since Drupal 7 was launched back in 2011, there is a high chance that your site has been on it for quite some time.
Therefore, moving to a new version would give you an opportunity to rethink your website’s aesthetics, it’s design and overall features and functionality to better suit your consumer’s needs and serve them in an optimal way.
Can you really tell me that there is a better way to actually evaluate your business’ performance and scope and align it with today’s market? I don’t think you can.
So, go ahead and choose to migrate and rebrand yourself to make a stronger impact.
The Important Questions to Ask Yourself When Upgrading Drupal 7
The Drupal 9 upgrade has been called the easiest upgrade of the decade, however, that is the case only if your site is on Drupal 8, the upgrade is even easier if it’s on a later version of Drupal 8.
For Drupal 7, the story is a little different.
The process isn’t that easy and it’s going to consume a lot of time and resources. That is why you have to be prepared. Before doing that you need answers to some important questions. Let’s find out what they are.
Where does your website currently stand?
The current standing of your website has a major role to play in the upgrade process.
It’s like when you decide to move to a bigger apartment, you have to evaluate your budget to accommodate the new rent, the furniture you have, whether it would fit the new space along with the mindset to some extent.
The same is the case with a website upgrade, especially when you are migrating to a version completely different from the present one.
So, what are the things you would need to identify and account for to be able to take that next step? Well, there is plenty to consider.
The Size and Skills of Your Team
The first and foremost is your team and your people, since they are the ones who would be undertaking and executing the upgrade.
When it comes to Drupal 8 and Drupal 9, there is a paradigm shift associated with the versions that incorporate object-oriented programming, which isn’t the case in Drupal 7.
Therefore, your team would have to significantly enhance their skills, if they are not familiar with object-oriented programming.
Now many would think that upskilling is not that big a deal, however, when you consider the monumental difference between Drupal 7 and Drupal 9, the learning curve would take a lot of time and it’s going to be expensive.
So, what is the option?
The way I see it, you could do the learning first and the upgrade after. Because if you upgrade to Drupal 9 and your team is still learning the ropes, it would, most likely, affect your site’s performance and functionality.
There is also the option of hiring an agency to perform the upgrade and help your team learn everything they need to, but again, it’s going to come at a cost.
Now the question is, can you afford the cost?
The Size and Complexity of Your Website
Since we just talked about resources, both human and financial, it’s only logical to talk about how much more they are going to be involved. From the size and skills of the team, let’s talk about the size and complexity of your website.
A larger and more complex website is going to need a more elaborate plan of action to make the upgrade possible, which would obviously need more resources.
So, how do you evaluate the size and complexity of your website? What are the things you have to consider? Well, the answer is just about everything.
The size calculation starts with determining the number of nodes and pages on your site. You can do it with the help of Drupal by simply exporting them or using your XML sitemap and there is also the option of Google Search Console.
The complexity estimate can be a bit complex to gather, since it’s far more diverse than the number of pages.
The number of content types;
The custom fields;
The multilingual features;
And the custom code and modules;
All of these together would give you a real picture of the amount of work you would have to put in the upgrade. Then you would need to take a long look at the picture and decide your next step.
When it comes to Drupal and the kind of functionality it can provide your website, the first things that pops into our minds are the Drupal modules. So, when taking on the task of migrating Drupal 7 to Drupal 8 or 9, you have to be mindful of the role the modules play.
I highlighted custom modules in the previous section as they make your website a tad more complex than usual, so giving them attention is much needed.
Why you may ask.
The answer lies in the fact that they are custom, you created them to serve the needs you had. They are not part of Drupal core and they aren’t contributed modules either, so the community at large won’t be making them compatible for Drupal 9.
That responsibility solely falls on you. And that can be challenging, especially when you consider how easily content can get lost in the transition.
What is more challenging is that it’s not just the custom modules that can bother you. Core and contributed modules can be a pain as well. The reason being the simple fact that they are no longer Drupal 9 compatible and there may be a far better alternative to the functionality they had to offer.
So, yes the modules need a lot of attention and all three categories of them.
Another important thing to remember is the integration or integrations of your website with other third party software. It could be something as trivial as a calendar, yet it can affect the scope of your upgrade.
There are two things to focus here;
How important is the integration to your site or can you avoid supporting it?
How much customisations went into them? Was written code involved or was it simply out-of-the-box?
These two questions will help you determine the flexibility you have in taking the integration further or leaving it behind with Drupal 7.
What do you envision your website to be?
The decision to migrate to Drupal 8 or 9 is monumental, it would completely change the way your website operates and will continue to operate the same way for many years to come.
So, taking that decision should come with the right facts and reasons backing it.
The way you envision your website in the future is what will help you come a step closer to being able to take the last step. While deciding what your project will be in the future, the following points might help you.
The Life Span
The first question to ask yourself about your site’s future is how long is the future.
Let me rephrase it a bit better. The idea here is to evaluate how long you see the current version of your site being suitable for your team, the developers, content editors and designers, along with your users and visitors.
Why is this relevant to your upgrade?
Like I have mentioned a couple of times before, the migration process from Drupal 7 to Drupal 8 or 9 is long, time consuming and demanding.
So, if we assume that your site is only going to serve you a value for the next 2-3 years, you would be better off with Drupal 7.
Yes, its EOL is in November, 2023. However, the vendor extended support will have you sorted for another five years. And frankly, taking on the upgrade would not be ideal if your site won’t be functional after a couple of years.
Now of course, if you have long-term plans for your project, you should definitely put in the investment needed to jump to Drupal 9.
Once you have the life expectancy sorted and it is time to audit.
This is almost similar to what we did in the previous section, wherein we looked at every aspect of our site to know the kind of effort that would go into the upgrade.
Since we did that, we would have a number of features and functionalities that no longer serve a need anymore. These could also be content types that we created half a decade ago and forgot about their existence.
In the new Drupal 9 site, we won’t be taking anything with us that’s unnecessary, redundant or simply put, useless.
Drupal 7 came in 2011, it's been more than decade since it’s launch and there is going to be plenty that would need to be left behind, plenty to be merged and there would still be plenty left to migrate.
So, decide what you want in your new Drupal site.
Believe it or not, it’s the era of decoupled architecture, wherein a website isn’t confined to the features and abilities of a single software.
Want to leverage React to create an awe-inspiring front-end, while having the trusted Drupal at the backend channelling your content in the best possible way. With Drupal 8 and Drupal 9, you get the privilege to do so, however, not with Drupal 7, I’m sure you know that.
So, to be able to fully leverage Drupal 9, you have to have a list of features that are crucial for your web operations.
These could include anything from the features serving your content editors or helping your developers or providing a seamless experience to your audience. Take the Layout Builder and WYSIWYG editor, Drupal 7 does not have them and even after multiple configurations and customisations, it might not get them.
There is a possibility that your website may not need such features. Your business model and audience would not benefit from a decoupled architecture. If that is the case, you may not need the upgrade.
However, if you think your website and the people working on it need the features offered by Drupal 8 and Drupal 9, your decision to migrate is made. Now, all you have to do is prepare yourself for the task ahead.
How Do You Migrate?
If you are reading this section, there is a high chance you have made the decision to migrate to Drupal 9. And if that is the case, you need to know the how and that too to the minutest of details.
So, let’s get on with it and tell you the three major steps involved in the process.
Plan, Plan and Plan
The first and foremost aspect of the migration should be your plan.
You need to have one that details everything that needs to be done, the teams that would do it and the time and budget required to complete them.
Just winging the upgrade is not going to cut it since it is a major replatforming of your website and just going into the upgrade without a sense of being organised can dishevel your entire platform and frustrate your team while doing so.
So, what should your plan look like?
Well, you would have to decide that ultimately, but I am here and we are talking about it, so let me just give you an outline.
Decide the time
Like I have said before, the upgrade is going to be a massive undertaking and it can run off track pretty quickly. That is why you need to have a timeline that would be feasible for you.
It could be six months all in one go, the migration and the design;
Or you could do it in increments, complete the migration first and then move on to the design elements and branding in the next stage.
Fix the budget
Moving on from the timeline, we get to the budget. A major replatforming would require a hefty budget. This also includes the overheads required for upskilling your team in Drupal 9.
There is a possibility that you may not be able to allocate the funds needed for the migration at once, which is okay because you don’t have to do everything at once, right?
Accumulate the team or hire an agency
These are some of the features that are going to be new in Drupal 8 and Drupal 9. There is a high chance that you would experience developer resistance, simply because they are going towards uncharted territory.
So keep that in mind when deciding whether to take on the upgrade with your existing team or hiring an expert agency that can not only take the burden of the upgrade from you, but also help your team in the acclimation process.
Schedule a release window
Finally, you have to plan the release window during a time wherein you do not experience large amounts of traffic.
If you are an educational institution, it can be the time when you do not get the influx of admission or exams.
This is advised because just the update alone does not mean that the job is done, there are a lot of things to take care of after the migration and some of them can go wrong.
Get the Tools
Accumulating the right tools equals half the battle won, don’t you agree?
I’m certain you do. So, once you have the plan in place, start researching and implementing the modules and necessities needed for the upgrade.
Before I get into that, I would like to say that if you have a Drupal 7 site that is built using everything Drupal core, you would be able to automatically migrate.
Yes, automatic migrations are very real, but they are contingent on your site being built on core or atleast common contributed modules, content types and fields. However, the possibility of not using custom code on your site is quite less.
This brings me to the paramount modules that aid the upgrade from Drupal 7.
These make the first step towards the upgrade seem less daunting.
You can add support like Drush for migration tasks and even for some of the non-core field types you may have. They also provide you the access to custom migration processors, and these have the power of simplifying highly complicated migrations.
Special mention for the Drupal Module Upgrader, which is essentially a command-line script that has the power of scanning the source of any Drupal 7 module, flagging codes requiring an update to Drupal 8 or 9, and highlighting any possible changes to the API.
What makes it even more special is that if it is possible, it will try to perform the conversion of the Drupal 7 code to the Drupal 8 and Drupal 9 version automatically, on its own, how wonderful is that!
Apart from these three, you would also have to accommodate for the environment requirements of the new Drupal 9 site and the necessary tools to go with them.
Composer has taken the place of Drush to add new modules along with their dependencies.
Twig has made PHPTemplate obsolete as the default engine for templating.
PHP would need to be updated to PHP 7.3 at the least, though the recommended versions are PHP 8.0 and 8.1, to make your website work on any server.
MySQL, MariaDB, or Percona Server are the recommended database requirements, with MariaDB 10.3.7+ and MySQL/Percona 5.7.8+.
I wouldn’t be completely wrong in saying that Drupal 8 and Drupal 9 are a whole other ball game than Drupal. Consequently, you would have to be ready for all the googlies they have to throw at you and these tools and requirements are just the way to do that. Here’s the guide on Drupal 9 upgrade tools.
Perform the migration
I can’t actually tell you much about the actual migration, the way you are going to perform, but I can give some insights as to how it should go and these are tips straight from our development team who have had the first hand experience of the process.
Once you have planned the migration, you ought to have migration files to help you during the process, these could be auto generated or hand-written.
While performing the migration, you would need to set up a separate Drupal 8 site that would essentially be running the migration.
Then all you would have to do would be run the migration and confirm its success.
You may think you are done by now, but there could be some migration cleanup to do, so be mindful of that as well.
Is It Possible to Skip Drupal 8 and Move on to Drupal 9?
I am really happy to say that you can jump directly to Drupal 9 from Drupal 7 without ever landing on the destination named Drupal 8.
This is possible because of a module called Migrate_Drupal, which is found in Drupal 9, making Drupal 7 migration ecosystem available in the latter version.
However, this doesn’t really make your upgrade journey easy. The process would still be time-consuming, demanding and expensive.
You would still need the same migration plan;
You would still need to work with the same tools;
You would still need to fulfil for the same platform requirements;
And you would still have to adjust with the paradigm shifts.
Honestly, nothing much changes if you choose to migrate directly to Drupal 9.
The only benefit is that you would not have to go through the upgrade process again soon after performing a major re-platforming because Drupal 8 has reached its EOL, an upgrade from 8 to 9 is inevitable and pretty imminent.
With all that we have discussed along with the impressive benefits that come along with Drupal 9, why are more than 50% Drupal sites still on version. That is a valid question and the reasoning behind not opting for Drupal 9 is also somewhat justified.
The Drupal 7 and Drupal 8 clash of contributed modules
A major reason for many Drupal websites to still be on Drupal 7 are the contributed modules. Despite how much Drupal core may offer, you would be inclined to use a number of contributed modules on your website to provide added functionalities.
And that becomes an issue when you re-platform your website.
You may ask why.
The answer lies in the fact that not all Drupal 7 contributed modules are found in Drupal 8 or Drupal 9. Now, you may think that with the absence of such modules, your site would lose some of its core functionalities. However, that isn’t entirely the case.
Yes, Drupal 7 contributed modules are not available in Drupal 8 and 9, however, Drupal 8 and 9 do provide those functionalities as part of their core.
So, the hesitation is clearly unnecessary, if you ask me.
What’s more riveting about the upgrade is that if you choose to do so, Drupal 8 and 9 come with backward compatibility, which means anything that works in Drupal 8 or 9 would most definitely work in late Drupal versions.
So, you would not need to worry about contributed modules ever again.
The Bandwidth Conundrum
Everything from Drupal 8, more specifically Drupal 9, is set on a path where new releases would be more frequent, as frequent as twice a year.
Don’t get me wrong, new releases are always a good thing, you get new and improved upon features to work with.
However, when you are a small team managing a not so small Drupal site, keeping up with the updates can seem daunting and frankly, you may not even have the time to do so, hence the bandwidth conundrum.
A small team isn’t necessarily a bad thing, however, managing a site is already a momentous task.
Add to that the constant need to update the site, because the version you are on has become obsolete of sorts, and you are left with a team that has too much on its plate.
Of course, there are tools available that can help. A great example of the same is Automatic Updates in Drupal, however, this is a tool that is a work-in-progress.
The Fear of New, Different and Unknown
It is human nature to fear change. Anything that is new and different often threatens us because we have an overwhelming fear of failing at it, not liking it or finding the adaptation too difficult.
The same is true for Drupal 9 upgrade from the 7th version.
The paradigm shift has made Drupal 8 and 9 a whole other ball game. This means that the entire stack is different inclusive of Composer, Twig and PHPUnit among other things.
Developers who have worked on Drupal 7 for a long time may find the change too much and have preferred to stay content in the familiar territory of Drupal 7.
However, when you think long term, Drupal 9 upgrade does give you a chance of widening your skills and delving into things you never thought you could. Many developers have taken this as a challenge and grown their knowledge and resume alike.
The Vendor Extended Support until 2025
Finally, the enticement of extended support until 2025 has Drupal 7 site owners relax a tad too much despite the end-of-life looming over them.
Although November, 2022 marks the end of official support to Drupal 7 sites, these sites will still have the support of vendors making them run smoothly even without the community support.
Yes, an upgrade from Drupal 7 to Drupal 9 is a massive undertaking.
Yes, it needs a lot of time and resources to make it happen.
Yes, your team may not really feel delighted to perform the upgrade.
However, should that really stop you from getting the best out of Drupal?
I don’t think so.
You may have to put in an effort during the migration, but it’s only a one time thing. With backward compatibility in Drupal 9, no other Drupal upgrade is going to be as difficult as this one. So, get on with the migration, you do not have a lot of time on your hands.