How Much Does it Cost to Migrate from Drupal 7 to 10
If you’ve ever asked how much it costs to migrate a website from Drupal 7 to Drupal 9 or 10, chances are, this is the answer you’ve received:
And chances are, you’ve received the same answer as many times as you’ve asked the question.
Much has been written about the architectural overhaul and entirely new code base that accompanies migrating a Drupal website from Drupal 7 to the current version. Relatively little has been written about the associated cost.
It’s a tough topic to pin down. The size and complexity of a website, along with the number of custom modules and themes, plus a wide mix of other factors, all come into play.
In a world where real numbers drive decisions, though, cost is a critical factor that determines which projects remain on hold and which receive priority status. So let’s open the conversation concerning the issues that have an impact on content migration costs.
The best starting point is a review of what a Drupal 7 to 10 content migration entails and the steps involved in the process.
What is a Drupal Migration?
Site migration from Drupal 7 (a legacy version of Drupal released in 2011) to Drupal 10, involves the transfer of content to an entirely new code base. Understanding the nuances of migrating users, entities, blocks, taxonomy, and views is crucial for a successful transition, which is a multi-step process that factors in the following elements of a Drupal site.
- Entities and nodes represent the core content structure in Drupal and during the migration process, content types and their associated fields need to be mapped and migrated to ensure the preservation of content relationships and configurations. The Drupal Migrate module can assist in this process.
- Blocks provide an additional dimension to Drupal web pages. In Drupal 7, blocks are often placed in regions of a theme. Regions may have changed in Drupal 10, requiring the review and updating of block placement. The Block Layout module can help ensure the correct migration of block configurations.
- The transfer of user's accounts, roles, and permissions is an essential piece in the migration process. The Drupal Migrate API is frequently leveraged in doing so.
- Taxonomy refers to the system for content organization. Careful attention is needed during migration to maintain the integrity of a site's taxonomy vocabularies, terms, and relationships.
- Drupal Views allow the creation of dynamic and graphically engaging lists and arrangements of content. All Views configurations need to be reviewed during migration for consistency. The Drupal migrate module is a helpful tool for doing so.
- Images, fields, and associated configurations are another critical component of content migration. The process requires verification that image styles are replicated correctly in the new Drupal 10 site.
- Files, media, and other attachments require special attention during migration to ensure that migrate file fields and file paths are maintained, and that file permissions are set correctly in Drupal 10. Media handling has evolved considerably between Drupal 7 and Drupal 10. Drupal modules such as Media Entity help bridge the divide.
Factors Concerning Design and Theme
A theme in Drupal encompasses everything from color schemes and typography to layout and styling. Drupal 10 introduces updated theming practices, all of which need to be taken into account during migration, and tested thoroughly in a Drupal 10 staging environment to ensure that all design elements are rendering correctly and that user interactions are as intended.
This requires understanding how the following key design and theme elements are represented in code.
- CSS and Styling. In Drupal 7, CSS files are typically located in the theme folder, with stylesheets guiding how various elements are deployed. Migration to Drupal 10 requires updating CSS files to newer CSS standards and methodologies to ensure compatibility.
- Templates and Twig. Themes in Drupal 7 use PHP template files. The theming engine evolved in Drupal 8 and 9, introducing Twig templates for improved readability and maintainability. Migration from Drupal 7 to 10 requires the conversion of Drupal 7 PHP templates to Twig, which results in easier theme management and customization.
Impact of Migration on Functionality
Site functionality refers to features and elements such as content management, user authentication, search capabilities, custom forms, and e-commerce features. The implementation of functionality in Drupal often involves a combination of core features, contributed modules, and custom code – all of which require distinct attention during migration.
Drupal 10 represents a significant codebase evolution, resulting in the adoption of the latest PHP versions and modern coding standards. This means that custom code, contributed modules, and themes developed for Drupal 7 need to be updated or reworked for Drupal 10.
Custom functionalities implemented in Drupal 7 need to be reviewed during migration to assess whether existing features are still relevant, if improvements can be made, and if any deprecated code needs to be replaced to align with Drupal 10.
Overview of Essential Drupal 7 to 10 Content Migration Scope
- Inventory of all content types, nodes, users, taxonomies, and media assets in the Drupal 7 site.
- Identify of dependencies between content types, such as entity references, taxonomy terms, and media attachments.
- Map fields from Drupal 7 to Drupal 10, taking note of any changes in field types or configurations.
- Define how Drupal 7 content types and fields map to Drupal 10 content types.
- Migrate user accounts, preserving usernames, emails, roles, and passwords.
- Migrate Taxonomy vocabularies and terms, ensuring that relationships between terms are maintained.
- Migrate Files and Media Entities ensuring that file paths, descriptions, and permissions are preserved.
- Adjust file paths and references in content to match the new file system structure.
- Execute migration commands. Monitor the migration process for any errors or warnings.
- Review migrated content to ensure accuracy and completeness.
- Conduct functional testing to ensure that content displays correctly, and user interactions, such as forms and links, work as expected.
- Engage stakeholders in user acceptance testing to verify that the migrated content meets requirements.
- Remove any unnecessary or deprecated content, fields, or configurations.
- Deploy the migrated content to the live Drupal 10 environment.
The following pre-migration assessment data helps in sizing Drupal 7 site and associated content migration costs.
A complicating factor in a Drupal 7 to 10 migration is that there is not a direct upgrade path from 7 to 10. As noted in the image below migration to Drupal 10 from Drupal 7 involves the creation of a brand new site in Drupal 10, leveraging the Migrate API.
Migration tools and resources, such as the Drupal Upgrade Status Module, can also serve to streamline the Drupal 7 to 10 transition.
The table below provides preliminary cost calculations based on time estimates for Drupal 7 to 10 migration-related tasks.
What's Not Covered in the Above Matrix
Despite our efforts to break a Drupal 7 to Drupal 10 migration into its parts, and cost it out accordingly, there remain tasks that are unique to every migration and don’t fit neatly into a box that can apply to all. The above cost estimate matrix is based on the following assumptions and what’s not factored into preliminary cost estimates:
- No theme migration
- No theme compatibility with newly migrated content
- No manual updates/cleanup on migrated content (inline JS, CSS, etc. will be stripped)
- Sites are on PHP 8.x or above; PHP upgrade is an added cost and not covered here
- No Architecture changes; Content types, Vocabulary will be kept as is
- Performance Improvement measures will not be added
- Broken links won’t be addressed
- Files will be migrated as File entities only
We can (and have) written extensively about the myriad of benefits that result from migrating a Drupal website from Drupal 7 to Drupal 10. The fact is though, the conversation often needs to begin with cost. Looking for more help analyzing your site from a migration perspective and mapping out a streamlined process for beginning to realize the benefits of the best-ever version of Drupal? That’s what we do. Get a free Drupal migration consultation.