The world of technology is constantly evolving - striving to create new solutions and improve the old ones. Consequently, the life cycle of any software sooner or later reaches its inevitable end. Such a fate awaits the distinguished and still popular Drupal 7 with the end of its official support by the developers. This is the perfect moment to recall the novelties it brought in relation to the previous versions and shed some light on what's next.
General information about Drupal 7
Released on 5 January 2011, Drupal 7 was the successor to Drupal 6, obviously. It brought many awaited and, above all, necessary changes. Learn about some of the most important ones.
- The concept of entity was introduced, known from many other solutions. Hereafter, entities can be anything – from a user profile and a node to things like a comment or a taxonomy term.
- Support for multisite appeared
- Content Construction Kit (CCK) became a module in the Drupal 7 core.
In addition, there were many smaller but no less essential improvements, such as: improvement of performance and security, changes in hooks and API, reduction of system requirements, ability to create shortcuts, scheduling tasks using cron, and many, many more.
Drupal 7 end of life - change of date
Originally, Drupal 7 end of support was planned for November 2021. Then, this date has been changed to 28 November 2022 and to 1 November 2023. The Drupal team justified this latest change because many companies and institutions were still using Drupal 7. For this reason, the CMS developers and maintainers didn't want to leave so many websites without security updates.
Recently, the Drupal team has announced the new date of Drupal 7 end of life - 5 January 2025. With this update also came the information about the reduced support for medium critical Drupal 7 issues. Such tasks will be added to the public issue queue (if only they aren't mass-exploitable) for resolution. Also, in the situation when - from the beginning of August 2023 - some contributed module or theme is marked as unsupported, it won't be available for the new maintainer.
Drupal 7 specification
Drupal 7, compared to its predecessor, is distinguished primarily by a more thoughtful approach to content management, which translates into changes in how data is stored, structured, and entered. Entity is an element that has remained with us to this day until Drupal 10.
Why do you need to perform a Drupal 7 migration?
Migrating Drupal 7 to a higher version is essential for many reasons. Here are the most important ones:
- The end of support for Drupal 7 - in practice, this also means no security updates. Consequently, this exposes the website owner to the need to accept a higher risk of hacking attacks and deal with their possible consequences. It also involves incurring additional costs of buying paid services from companies offering support to work on security vulnerabilities.
- Complying with the new SEO standards of higher Drupal versions - search engines have changed their algorithms over the past ten years and promote content differently than they used to. If you want your website to appear higher in search results, a Drupal update will help. New versions of Drupal handle the latest SEO standards much better. This is because they stand out with improved performance over older versions, better support for mobile devices, and improved website accessibility for people with disabilities.
- A more pleasant content editing process after the migration - although content editing was user-friendly in the years following the release of Drupal 7 (especially compared to Drupal 6), the UI world has moved on, and over the following years, the approach to working on content in this system version has become less and less in line with the latest trends and editor habits. Upgrading to Drupal 10 will optimize the content creation process, especially with the new Claro skin or contrib solutions such as Gin.
Drupal 7 vs. Drupal 10 and other system versions
You cannot compare Drupal 7 with Drupal 10, not to mention intermediate versions. The introduction of Drupal 8 was a tremendous and significant change in the direction of system development. Let's look at some of the most important changes and improvements over the previous version.
- Drupal has been rewritten using the Symfony framework. For those unfamiliar with the topic, Symfony is one of the most popular PHP frameworks. Therefore, from the very beginning Drupal could boast that it gets a lot of support from the community and creators associated with Symfony. This change is actually so big, because the earlier Drupal versions weren’t based on any such powerful frameworks.
- A new engine for creating templates has been introduced - the well-known and popular Twig (this is the result of switching to Symfony, where this engine is also used). This streamlines the work when creating templates, and brings the way of implementing them closer to modern standards, abandoning the previous themes and PHP templates.
- The lack of a sensible text editor in Drupal 7 has been solved in version 8 with CKEditor - an extremely powerful and multifunctional tool for working with content.
- The Views module has become a part of the system's core.
- Drupal 8 brought almost 200 changes and patches that you can read about on Drupal.org.
You may also be interested in: 10 tricks to work efficiently with the Composer in Drupal 8
How does the matter look in further versions? Moving from Drupal 8 to Drupal 9 allowed updating dependencies and removing code marked as deprecated. So, migrating an application written in Drupal 8 to version 9 involved removing deprecated elements from the code and updating modules.
So, is the change from version 7 to version 10 a good idea? To put it simply: YES!
From the very beginning, the transition to Drupal 8 seemed like a necessary move. The number of innovations and possibilities that version 8 introduced at the time was staggering, and the already outdated solutions known from Drupal 7 were beginning to be a crutch when juxtaposed with the rampant development and progress in web development. Versions 9 and 10 only widened the gap.
Then what is the cause of such a large number of websites (about 380 thousand active installations - as of August 2023) still operating on Drupal 7 and of the many years of support from the developers provided for such an old software version? It's all the result of how great a revolution Drupal 8 was and what significant changes have been made to the very logic that underlies the entire system. The introduction of Symfony as the base framework for Drupal was a double-edged sword. Although it actually brought only good changes, it led to practically no compatibility with the previous versions.
Upgrading from Drupal 7 to 8 couldn’t be done automatically, and sometimes even required rewriting the entire page from scratch. As you can imagine, this could be very problematic for systems maintained over the years, not to mention the cost that such a change could generate.
Today, however, we are already richer with years of experience. Upgrading from 7 to 8 doesn't have to be as titanic a job as it initially was. There are many tools on the market that can help us with the migration and make it easier.
Drupal 7 EOL - professional help
Since we have already established that moving to the latest version of Drupal is actually a necessity, and we’ve gained some additional time with the move of the planned end date of support, we’ll introduce you to this process. If you don't feel up to it, we recommend that you contact the professional Drupal support team for help. Using the services of specialists experienced in this type of migration can significantly shorten the entire process, as well as dispel any doubts related to it.
Drupal 7 to 10 migration - how to conduct the process?
Migration is a multi-stage process that includes time for preparation, implementation, and post-migration activities. Let’s discover the following steps.
How to prepare for Drupal 7 to 10 migration?
When preparing, you should first determine which functionalities are essential to you and must be maintained. Elements can be sorted by priority. Here, it’s important to remember to keep dependencies between functionalities so that you don’t exclude some critical parts. Dependency mistakes will most likely be caught during the migration process but can then introduce confusion, which can be avoided by conducting a solid planning stage.
The preparation stage is also a great time to plan for additional functionality you have always wanted to introduce, but for some reason, it wasn’t possible in the old system version. In this case, even potential functionalities should be discussed during migration planning, as they can affect the process going forward.
In addition to functionality, you should also determine which content should be migrated. Migration is also an excellent time to refresh the look of your website - the skin will have to be rewritten anyway due to its almost complete lack of compatibility with newer versions of Drupal. Therefore, the additional outlay of resources will be less than if you postpone this investment until after the migration.
On the technical side, it's a good idea to review the available modules and ensure that everyone you have uses them. For contrib modules, make sure they support Drupal 10. Custom modules must be rewritten, so choosing only the necessary modules will save you time and money.
It’s also crucial to plan the infrastructure on which you’ll run your website. The infrastructure must be compatible with Drupal 10 requirements, and it should allow you to easily scale your resources to accomplish your task in case of higher demand.
How to implement Drupal 7 to 10 migration?
After decent preparation comes the implementation stage. It’s worth ensuring that your Drupal 7 is updated to the latest possible version. This should minimize any difficulties in moving the configuration. Next, we usually start by moving the entity structure to prepare a place for data import.
If the Drupal 7 application will continue to be used throughout the rewriting process, then you should consider implementing incremental content migration, a way to determine which data has been migrated and which has not yet. Typically, this is done by recording the export date of the content of a given type and comparing it to the date the content was last edited to export only those items whose last modification occurred later than the previous export.
Importantly, before each data import, you should make security copies so that you can make the appropriate corrections and try again in case of failure.
After data migration comes the stage of installing and configuring the remaining contrib modules and skins and rewriting custom modules and skins. This stage requires (in the case of custom modules and skins) several steps. The first is to understand the Drupal 10 architecture to be able to rewrite the code correctly and according to standards. It’s also crucial to update the documentation so that the purpose and use of the module are clear to both developers and website administrators.
What should you keep in mind after Drupal 7 migration?
After the migration (in the case where the Drupal 7 website is active), it’s necessary to determine the moment when the so-called content freeze occurs, that is, the time when no content is added to the site. This is when we import the last content increment to the new web page on Drupal 10 and update the modules.
Drupal 10 is a rapidly developing system. Module updates are released every day. Staying up to date allows you to eliminate as many bugs as possible and also enables you to use the system's latest features.
Drupal 7 end of life - summary
Migration to the latest version of Drupal is essential for many reasons. Depending on the website's characteristics, size, popularity, and several other factors, the process of preparation, implementation, and post-migration activities vary significantly.
If your website needs to be migrated to a higher version, get help from professionals. Our team of developers specializing in Drupal 7 to 10 migration has experience in processes carried out with complete success.