Read this article if you are one of those organizations that have complex websites that work well and are looking for an UPGRADE, rather than a complete rebuild.
Hero image by Ed Korenman via ZippGo.
Preface: If you haven't done so, please see the first article in this series, which navigated you through the initial steps in migrating your Drupal 7 site within YOUR budget. This post was co-written by Irina Zaks, co-founder and chief technology officer (CTO) at Fibonacci Web Studio, and Tori Sparkman Lewis, Director of Projects at Fibonacci Web Studio.
Let’s begin our deep dive into the foundation for your Drupal 7 (D7) upgrade estimates. The same principles apply if you are doing this work inside your company or hiring an agency. If you are not doing a full rebuild of your site and not moving to a simpler CMS, you have two great candidates for your next Drupal-based CMS.
Meet the Cousins, D9 and Backdrop CMS, in April 2022
Drupal 9 (D9) and Backdrop CMS are both descendants of the same parent — Drupal 7 or D7 for short. In order to do a good comparison between the migration to each of these systems, it is important to understand how each of them is different from D7 and how each one inherits features and traits from D7.
D9 was designed to support enterprise systems and included a complete overhaul of the D7 back-end. Composer, PHP object-oriented programming (OOP), twig, and many other enterprise-level features make it a very powerful system. However, they also require enterprise-level IT support.
Backdrop CMS was forked from D7 in 2013 and provides a built-in upgrade path for D7 sites that want to have consistent experience for site builders, content managers, and back-end coders — all while taking advantage of a modern, supported CMS with advanced configuration management and development tools, like Github, etc.
The following matrix provides a comparison of major D7 features and D9 and Backdrop CMS:
It is important to remember that software is an ever-evolving creature, and every 6 months will not only have security updates, but also new features. A good example is the upgrade for D7 Field Collections and Paragraphs — not available now without custom code — might be fixed in the next release. The chart above will change by April 2023, so it is important to compare systems at the time when you are actually doing your upgrade.
One-Click Migrations, Step-by-Step
In 2017, my presentation at StanfordWebCamp was titled “OneClick migration to Drupal 8,” and I was asked if such a thing even exists. My answer is a conditional “YES.” If you invested time and money into having a clean D7 site with architecture that you want to preserve and freshly updated content — now is a time to reap the rewards! Whether you’re talking about migrating to D9 or Backdrop CMS, your upgrade path should cost much less than a full site redesign and rebuild.
Preparing an existing D7 site for any migration includes:
Update modules to latest version
Disable modules that are not used/upgradable, etc.
Delete unused content
Unused Media, etc.
Backdrop CMS Upgrade — What You Can Do in April 2022
In this section, we provide detailed instructions for updating to Backdrop CMS or site builders on the Pantheon WebOps platform. Back-end developers might prefer other paths described on Backdrop’s website.
On existing D7 site install https://www.drupal.org/project/backdrop_upgrade_status, click on “configure” to get to url/admin/reports/updates/backdrop-upgrade and run report manually
Set up new Backdrop site on Pantheon or your own hosting
Export current D7 database and files (you can do that via Pantheon dashboard if your current site is on Pantheon)
Import D7 db into Backdrop site (find technical details here)
Import D7 files via SFTP
Update the following line in file settings.php to $update_free_access to TRUE and start core/update.php per instructions.
Now you can sit back and watch the running conversion from D7 to Backdrop — or perhaps go on a walk, or get a cup of tea or coffee. This update usually takes 60 seconds or less, so the upgrade will be completed and recorded in the system log by the time you are done with your drink.
Upgrade will convert content types, taxonomies, user settings, roles and permissions, as well as Views into .json files, and content will stay in place with the same ids. Your files from Drupal 7 will be treated as Entities in Backdrop, and all existing references will be preserved. There is no need for additional file migration. With the new layouts system in core, your current blocks configuration after migration might need some adjustments.
Drupal 9 Upgrade — What You Can Do in April 2022
In this section, we provide detailed instructions for the D9 update for site builders. These steps will work on any platform.
Install new D9 site
Enable module “Migrate Drupal” and “Migrate Drupal UI”
Connect to database for existing D7 site to move content and some configurations
Provide the url of the existing D7 site to move files (images, docs, etc.)
Review upgrade paths — these will tell you which modules will be updated
Go back and add modules that you need. If a module does not have an upgrade path adding it to D9 will not help, so you might be repeating this step more than once.
Click the blue button to “Continue”.
This process might take quite some time, as everything has to be moved from one database to another, and files are copied to the new site. It might be helpful to watch every step of creating all entities in the fresh Drupal 9 CMS and populating them with the content, especially as hiccups happen like with any move. Watching the process allows you to ensure that something important is not forgotten or broken.
Upgrade will create content types, taxonomies, user settings, roles and permissions with the same structure as on the D7 site. At this time, D9 does not have out-of-the-box migration paths for Views, and this could be a big limitation for some sites. One of the biggest (and time consuming) tasks in D9 “one-click” migration is rebuilding Views. The hope is that some day there will be an upgrade path for the Views module for D7 to Views in core for D9/10/11, which would make the D9 upgrade path much more affordable.
There are plenty of themes to select from for both Backdrop and D9 — most of them are out-of-the-box responsive and accessible. Some are Bootstrap-based; some have a custom design. Come and pick what you like, or build your own new theme! There are plenty of tutorials for creating themes and converting themes for both D9 and Backdrop CMS.
Custom modules will need work if you are moving off D7. Similar to themes, there are many tutorials for writing custom modules.
If you are moving to D9 prepare to completely rebuild your custom modules with a completely new approach. Plan to begin with converting .info files to .yml files, hooks to D9 APIs, and D7 variables to D9 configuration; begin using D9 state system and using composer for package management, and many other advanced tools that make a developer’s life exciting and fun.
Converting modules is much easier for Backdrop CMS because its codebase is similar to Drupal 7 and generally needs very few changes to convert. Backdrop also includes a Drupal compatibility layer which should reenable both deprecated and Drupal functions (even those with the format “drupal_XXX,” such as drupal_set_message). Conversion of custom modules is a major component of the estimate for an upgrade.
Now that you have all ingredients of the migration recipe listed you can do the math, add the price of each component and decide what is or is not affordable for your organization both short term and long term.
Some sites can be upgraded with “one-click” while others need more elaborate and time-consuming migrations. Budget is a major factor that defines where you will take your website, and your investment in the discovery and planning phase will both save you money and improve your quality of life.
You might also like:
- Migrating From Drupal 7: Where Do I Go and What Will It Cost?
- Technical Overview of Backdrop Upgrade on Pantheon
Topics: Development, Drupal