Moving from Drupal Core 7 to Drupal Core 9/10 takes several steps. Breaking down these steps into phases to upgrade a Drupal application is crucial for long term success. Drupal 7 to Drupal 10 upgrades / site rebuilds can take anywhere from 16 to 30 weeks.
Drupal upgrades can be split into the following phases:
Future Planning / Architecture review of your Drupal site
Evaluate your Drupal application for readiness to update to the latest version of Drupal core. This review should start with a current state review and work with your team to determine areas to improve editorial efficiencies, reduce technical debt, and modernize your frontend framework.
Drupal Content migration
Drupal 7 Applications require content migration. If you have a D7 application we recommend using the Content Migration APIs to migrate all of your content into a new site with the latest version of Drupal Core. This will not affect your currently live Drupal site.
- Migrations requires a Content Freeze. You can achieve this by either duplicating content in both D7 and D9 sites or scheduling a content freeze.
Deprecated Code Clean up / PHP Upgrade
Drupal 9/10 requires ^PHP 8.x. Over the course of 10 years the PHP code from D7 to D9 has changed quite a lot. Use tools like to review what code needs to be updated. Other important code updates that require time and consideration:
Other features that require upgrading:
Drupal Core version
Current PHP Version - Upgrading deprecated PHP code takes time
Total Number of Multi-sites
Database Size (in GB)
Number of Contributed Modules
Number of Custom Modules
Number of Views - Views must be upgraded manually
Number of Themes - Themes must be upgraded manually
Number of PHP theme templates - templates must be rewritten manually
PHP Text Format enabled
Organic Groups Module - Organic groups must be rewritten manually
Rules Module - Rules do not have a 1:1 equivalent so you must manually audit your rules
Panels Module - Panels must be rewritten in Drupal 9/10 manually
Frontend Drupal Theme Rebuild
Drupal 9’s frontend framework provides a modern approach to design. This requires more time to rebuild templates and other frontend components or code with a frontend developer. There are no tools to automatically do the frontend part of the upgrade.
- Option one: Theme rebuild using TWIG
- Option two: Site Studio Rebuild
- Option three: Decoupled Frontend architecture
Upgrading Drupal Prelaunch Checklist
Review Acquia's prelaunch checklist and consider hiring Professional Services to perform security and performance audit known as Launch Readiness.
Launch your new Drupal 9 site to the public with either a code deployment or a DNS change to your new D9/10 environment.
Ongoing Drupal Site Development and Future Security Updates with DevOps
Once you have an upgraded site have you considered trying to automate your devops to keep up with security updates in the future? The world's only full stack Drupal platform for development. Code Studio makes building Drupal applications easy. Accelerate your production with a complete set of tools that enable your teams to plan, build, test, review, and deploy from a single, customizable workflow parts of Drupal development so you can stay focused on what's most valuable.
- Auto Devops: Automatically build, test and deploy your Drupal applications with Acquia Code Studio managed CI pipelines. Your Drupal application will inherit Acquia’s configurable build pipeline, which will install dependencies, scan and test your code, create a review environment, and (when you’re ready) deploy straight to production.
- Automatic Updates: Code Studio will automatically update your Composer packages, replace deprecated custom code, and submit those changes for you to review in a Merge Request with a dedicated review environment. When you’re ready, you can merge the changes with a single button click and our pipeline.
- Try Code Studio yourself with a clickable walkthrough
What can you do right now?
One: Install Upgrade Status
Upgrade Status is a Drupal module that can provide more information about your current place and support for upgrading to Drupal 10.
Two: Audit content and text formats
Review your content types and text formats. It is recommended that you do not use PHP or code inside of your fields. If you are using PHP code inside of your database fields you should consider removing it before or flagging it before an upgrade to remove afterwards.
Three: Audit views
Consider reducing views you don’t need and take a look at the Views migration from Drupal 7 to Drupal 9 module to help migrate. Some views might need to be rebuilt by hand.
Four: Review custom code and features for PHP Compatibility
Custom modules and features need to be reviewed for PHP compatibility. You can use a code sniffer like https://github.com/PHPCompatibility/PHPCompatibility to identify code that has been deprecated and needs to be updated. There is also Drupal 7 to 8/9 Module Upgrader can help to automate some of this task, but manual intervention will still be required.
Five: Upgrade everything to the latest version of D7 projects and review known upgrade issues. You can check the known upgrade issue page.
Six: Review frontend and page building elements.
Drupal 10 uses twig templates instead of PHP templates. You will need to manually rebuild your theme templates and functions after the migration.