2023-10-20

Plan your migration from Drupal 7 to Drupal 10

Nikolay Tsekov

Chief Operating Officer

Plan your migration from Drupal 7 to Drupal 10

Take inventory of your Drupal 7 site

The first step in preparing for a Drupal 7 to 10 migration is to take a complete inventory of your existing Drupal 7 site setup.

You'll want to document all activated modules, including core, contributed and custom modules. Make a list of all the themes and templates currently in use. Catalogue all content types, fields, views, blocks, menus and other site building components in use. Also outline any custom code overrides or functionality in place.

Carefully highlight any key features, integrations and workflows that are specific to your site's data model and business processes. These will need to be ported or reimplemented in Drupal 10. It is important to go through this exercise thoroughly to create a detailed blueprint of your Drupal 7 site. This inventory provides a checklist of everything that needs to be migrated or considered in the new Drupal 10 environment.

Without this documentation, it is easy to miss something during the migration and have unexpected gaps in functionality afterwards. Investing effort upfront to capture all the details of the existing setup will pay off later by ensuring a smoother upgrade experience.

Prioritise your migration tasks

Once you have a complete inventory of the Drupal 7 site, the next step is to prioritise which parts need to be migrated first and which can wait until later stages.It is unlikely that everything can realistically be migrated at once. Focus on migrating the core pages and critical content first. This is the content that is central to your business operations.

Also prioritise the migration of primary site functionality, integrations with other systems such as e-commerce, CRM, etc. and modules/features related to core business requirements. The aim is to migrate your minimum viable product first.

Less critical content types, ancillary pages and custom modules that are "nice to have" but not essential can be scheduled for migration in later phases. For example, an events calendar, staff directory or press release content type could be moved down the priority list.

Identifying these priorities in advance will help to break the migration down into achievable chunks and phases. This will prevent you from biting off more than you can chew.

The first milestone should focus on getting the new Drupal 10 site up and running with core pages, critical content and must-have features, without getting bogged down trying to migrate every piece of content immediately. Subsequent phases can address lower priority items.

Evaluate module compatibility

A key part of planning your Drupal 7 to 10 migration will be a thorough compatibility assessment of all your existing modules. You'll need to assess which modules can be upgraded directly, and which need to be replaced. Start by compiling a complete list of all third-party contributed modules and custom modules currently enabled in your Drupal 7 site.

For each module, check the Drupal.org project page or GitHub repository to see if an official Drupal 10 version is already available. Note which modules have clear, supported upgrade paths. For those without Drupal 10 versions, explore potential alternative modules that could provide similar functionality once migrated to Drupal 10. With hundreds of new Drupal 10 modules, you're likely to find suitable replacements for outdated Drupal 7 modules.

Inevitably, you'll find some modules that don't yet have good Drupal 10 replacements or upgrade paths. Make a list of these remaining modules so you can start planning how to replace their functionality with newer Drupal 10 approaches. Any custom modules will need to be audited and updated to work properly in Drupal 10. Check for backwards compatibility issues and API changes that may require code tweaks. As a best practice, try upgrading modules to the latest versions in Drupal 7 before attempting to migrate to Drupal 10. This will iron out any compatibility issues.

Invest time up front in this thorough evaluation of module upgrade readiness. Making a detailed list of which modules are directly upgradeable, and which need to be redeveloped or replaced, will help you plan for reworking parts of your Drupal 7 site to work in Drupal 10. Identify any gaps early so you can work on solutions.

Budget Time and resources

A crucial step in planning your Drupal 7 to 10 migration is realistically budgeting the time, staff resources, and testing bandwidth required to complete the transition successfully.

Take stock of the scope and complexity of your existing Drupal 7 site across factors like content volume, functionality, integrations, custom modules, theming, etc. More complex sites will require more effort to migrate. Build in ample buffers and allowances for unknowns and delays that can arise during significant upgrades like this. Depending on the size of your site, budget several weeks to months for the full migration. Ensure availability of expert Drupal developers for tackling core upgrade tasks, module substitutions, theme conversions, content migrations, and testing. This skilled staff bandwidth is essential.

Dedicate quality assurance resources for thoroughly testing migrated components, signing off on user acceptance, and identifying any bugs or issues that may arise. Testing is invaluable for catching problems early. Allow time after launch for ongoing performance tuning, troubleshooting, and debugging of any problems that emerge in production. Expect to invest effort refining and stabilizing the new site. If staff need training on Drupal 10, factor time and resources for that as well. Get users up to speed on taking advantage of new Drupal 10 capabilities.

Taking the time upfront to realistically allocate sufficient staffing, testing, and troubleshooting bandwidth will pay off through a smooth migration process without unnecessary delays or cost overruns. Adequate resources and buffers built in are key to staying on track.

Allow time for testing and bug fixing

Robust testing and quality assurance will be critical after migrating your Drupal 7 site to Drupal 10. Be sure to budget sufficient time for comprehensive testing. Conduct thorough functional testing to validate that all critical site functionality - content authoring, workflows, forms, integrations, etc. - will work as expected when migrated to Drupal 10. Verify that key use cases and business processes work properly.

Perform UI and UX testing to confirm that content displays correctly on different pages, devices and browsers. Verify that the intended design and styling remains intact after the transition to Drupal 10. Perform accessibility testing to validate compliance with standards such as WCAG 2.1 - this includes screen reader support, keyboard navigation, proper ARIA roles and other aspects that impact users with disabilities.

Execute performance and load testing to assess the site's response times, ability to handle traffic spikes and the effectiveness of caching mechanisms. Check for performance regressions. Conduct security testing, including vulnerability scanning, penetration testing, input validation, etc., to identify any security gaps that may have been introduced during the migration. Test across browsers and mobile devices to ensure cross-browser compatibility and responsive behaviour is maintained post-migration. Perform regression testing by comparing functionality with the original Drupal 7 site to quickly identify any regressions.

Conduct usability testing with real users on common scenarios to identify pain points and areas of confusion. Incorporate user feedback into refinements. Implement unit, integration, API and end-to-end tests to automate testing and monitoring.

Budget time to find bugs, document them thoroughly, and schedule fixes before launch. Have a structured process for reporting and systematically resolving bugs.

Create a rollback plan

Before going live with your migrated Drupal 10 site, make sure you have a robust backup and rollback plan in place as a contingency.

Start with a full backup of your Drupal 7 database, codebase, files and media assets before starting any migration work. Keep the live Drupal 7 site completely intact to begin with. Throughout the development of the Drupal 10 staging/testing environment, continue to back up its database and files regularly as work progresses. Document details of the original Drupal 7 infrastructure, including server configurations, domains, modules, themes, libraries, etc. to facilitate a smooth rollback if ever needed.

Create a detailed contingency plan document that clearly outlines the procedural steps to be followed for rolling back to Drupal 7 across environments, domain DNS, codebases and databases. Test rollback procedures on staging environments first to confirm readiness. Refine procedures as needed.

Having robust backups combined with a proven rollback plan will give you the confidence and assurance you need to migrate forward, knowing you have the ability to revert if something goes wrong.

Tags:

Share this article:

Thank you for subscribing!

Subscribe to our newsLetter

Need expert guidance for your Drupal 7 to 10 migration? Contact us today to ensure a seamless transition. Our experienced team can help you with inventory, prioritisation, module compatibility, budgeting, testing, and rollback planning. Upgrade with confidence. Contact us now.

Privacy settings