Launched in 2011, Drupal 7 was an advanced CMS for its time and has certainly served you well so far. But with the frequency of disruptive market trends, changing customer expectations, and emerging technologies, Drupal 7 is no longer equipped to meet current and emerging business needs. And with its end of life coming up in November 2022, businesses need to evaluate their move from Drupal 7 to Drupal 9 as it is a necessity to keep your website and business protected.
Drupal's largest and most recent release - Drupal 9 - was released in June 2020. Since the release of Drupal 8, Drupal's release model has been designed to support innovation. Every 6 months, there will be a new release with a set of bug fixes and feature additions. You can compare and contrast the different migration paths available, to choose the one that suits your specific business context. However, with the launch of Drupal 9, most companies consider a migration from Drupal 7 to Drupal 9 to be their best option.
Once you have made the decision to migrate to Drupal 9, there are some common factors to consider when defining the scope of the migration. These include:
- Estimating the time and budget for the migration
- Evaluation of your modules, to know how they would work on Drupal 9
- Analysis of the impact of the migration on the design and architecture of the site
- Security assessment of current modules
- Assessing the skills of in-house developers available for the migration.
Let us examine these considerations in detail.
Time and Budget Considerations
As with any other migration project, most web administrators worry about how long the migration from Drupal 7 to Drupal 9 will take. The duration of the migration will depend on the amount of data and content on the website. For example, it is estimated that a website without custom modules and with few content types can be migrated in a few weeks. On the other hand, complex websites can take longer to migrate to Drupal 9.
Compared to Drupal 7, Drupal 9 is significantly different under the hood. There are changes in the front-end theming and in the back-end code. Many of the features offered by the modules contributed in D7 are part of the core of D9. In addition, Drupal 9 is designed to deliver advanced digital experiences with an advanced feature set and functionality. A migration from Drupal 7 to 9 will therefore involve a set of major changes for your website.
You can also divide your migration into phases depending on your company's budget constraints. If it's easier to get the budget all at once, plan to do the entire migration, with all the additional site changes, at once. On the other hand, if budgeting in phases seems like a better option, break down your migration plan accordingly. Be sure to plan deadlines in advance so that the project doesn't stretch out too far.
Are the developers sufficiently qualified to carry out the migration activities? If they are not, they must be properly trained before starting the migration. In addition, they should be aware of the migration dependencies and be familiar with the Drupal 9 code base. Have they been working on Drupal 7 for a long time? If so, the migration to Drupal 9 may meet some resistance from your team, as it requires learning new tools and ways of doing things.
This learning curve must be factored into time and budget plans, not only for the migration, but also for ongoing development work and maintenance after the upgrade. Progress during sprints is likely to be slow. And it can be helpful to bring in outside help that can mitigate some of that learning curve.
Revisit your information architecture, features and design
As discussed above, auditing your existing Drupal 7 site can give you a better idea of what you want to keep and what you can lose in the process. It's also a good time to get the big picture and ask questions like:
- Who is the site aimed at?
- What are your current business goals and objectives?
- Is this content still relevant to your site?
- Is there a type of content you've used once or twice, and never used again?
- How should you change the information architecture to better serve today's audience in the next Drupal 9 site?
- How have the feature needs of your content editors changed?
- Does your website provide a great user experience?
- Does your website need a design refresh?
You may find that many of your requirements have changed along with the new level of digital experiences expected. And you may want to bring much more to your website than just migration. So revisit your site, its content and your SEO strategy. Review user analytics to better understand your customers. Analyze your current features and modules, and assess whether you need new modules, or determine which ones are already built into the Drupal 9 core. See what adds value to your business, and make the choice to continue down that path.
Start the migration process
After the planning, comes the migration process itself which essentially involves your development team to complete the following steps:
- Analyze and prepare the source code
- Identification of the content to be migrated
- End-to-end testing
- Go back and retest if problems are found
- Putting into production
While the steps are the same as for any migration to Drupal, there are a set of technical considerations/tasks you need to prepare for. Here is an overview:
Configuration of the front part
Twig has replaced PHPTemplate as the default templating engine, giving D9 a more powerful and flexible interface. This, coupled with D9's decoupled/headless capabilities, means you can create more advanced and attractive client front ends. However, it also means that many of your templates and designs will need to be recoded for Drupal 9.
You can use the Drupal Module Upgrader to analyze and convert obsolete code on your Drupal 7 site. Although this reduces the workload, we recommend that you manually supervise this task to ensure a smooth process.
Composer is used to add modules, and many modules contributed in Drupal 7 have now been included in Drupal core. This means that you will need to map all modules used in Drupal 7 and their functions to their corresponding counterparts in Drupal 9. Once you have done this, you will be able to reorganize the relevant functionality to take advantage of Drupal 9 core rather than relying on contributed modules.
You may also have to wait until some of the D7 contributed modules are available for D9, although these are very few. You can also use the update status module to provide information about the availability of contributed modules in Drupal 9.
There is the Core Migrate module suite to migrate your content and site configuration from Drupal 7 to the right places in Drupal 9. You can also create a custom migration configuration from the Migrate module to move content.
Drupal 7 sites primarily use Paragraphs to manage page content in Drupal 7 or Drupal 8. You will need to migrate this content into the new fields in Drupal 9 to ensure control over the layout of your site.
As you move forward with Drupal 7, you should have a series of API integrations to your Drupal implementation and this is a major thing to keep track of during a migration from D7 to D9. The team will need to pay close attention to how different APIs are mapped to different modules in D7, whether they exist in D9, or if the integrations now need to be done in a new way.
As you can see, migrating from Drupal 7 to Drupal 9 involves a number of different moving parts. You can gather internal stakeholders to evaluate the different options available to migrate from Drupal 7. However, once you've made the decision to move to Drupal 9, it's advisable to bring in an experienced team to help you through the migration process. While your internal teams may have worked with D7 for a long time, D9 is significantly different and you will need a technology partner to facilitate a seamless integration.