migration from Drupal 7 to Drupal 9

Enhancing and standardizing as they move from Drupal 7 to Drupal 9



Coldfront Labs, in collaboration with the International Development Research Centre, has been redesigning and migrating the IDRC’s existing Drupal 7 site into Drupal 8 in preparation for Drupal 9.

The main objective of the project is to ensure a seamless “feature-for-feature” migration of the current site using the latest modules and standards in Drupal 8, allowing the IDRC to migrate to Drupal 9 with minimal effort.


During the planning process, we decided it would be best to separate the project into 3 stages:

  • Migration preparation
  • Migration from Drupal 7 to 8
  • Migration from Drupal 8 to 9

During the migration preparation, we gathered a list of desired features and improvements to be applied to the existing Drupal 7 site before the move to Drupal 8, and sorted them into high, medium, and low priorities.

Some of these changes involved adding fields to specific content, changing the values of response emails in contact forms, ensuring translations were present and correct, altering Views, and general code cleanup, all of which can be easily replicated or migrated from the Drupal 7 site without issue.

The next stage of the project is the migration itself, which involved the majority of the work. First, all content types, block types, and taxonomy vocabularies have been re-created and migrations were written to transfer the existing data into the new types. Next, content such as field collections was replaced with new entity types related to the appropriate content. Additionally, all modules were either migrated over, replaced with core functionality, or replaced with custom modules. Lastly, the IDRC’s existing theme was rewritten from the ground up using Bootstrap 4 and Drupal 8’s standard Twig templating engine. To ensure compatibility with the release of Drupal 9, all custom code and features were created using the latest standards and features of Drupal. No deprecated functions were used in the Drupal 8 build. 

One month after the go-live in March 2021, the site was successfully upgraded to Drupal 9.1 with minimal effort and no additional code changes required. All deprecated functions and methods were removed as part of the Drupal 8 build. 


Besides the ease of upgrading to Drupal 9, the client benefited from significantly improved content authoring and layout capabilities comparative to their Drupal 7 install. Layout Paragraphs, along with Layout Builder, made building pages more visual and intuitive to content authors. Additionally, we’ve kept our deprecation checks as part of the CI/CD process in preparation for newer versions of Drupal 9 and the eventual upgrade to Drupal 10. We also improved the accessibility of the application with improved menus and actions available on their site search page.

We continue to work with the IDRC, providing a monthly support and maintenance service level agreement.