Sector(s)

Visit the site

Visit the site

Organizations Involved

As a globally acclaimed technology consultation and digital transformation service provider, our client helps businesses transform operations and leverage technology to stay ahead in a competitive market. To maintain a strong web presence, our client needed an upgraded website. However, the large scale of the migration prevented our clients from moving forward.

Describe the project (goals, requirements and outcome)

Goals: Successfully migrate client website from Drupal 7 to Drupal 9

The main goal was to migrate the large-scale website from Drupal 7 to Drupal 9. This migration involved more than just content transfer; it required adapting to changes in data structures, Modules, and field types. With over 50,000 pages to migrate, we needed to evaluate multiple techniques to ensure a seamless transition. 

Solutions 

Before beginning, we considered multiple approaches, which included: 

  1. Database-to-Database Migration
    • Approach: Place the Drupal 7 database on the Drupal 9 server after every content change.
    • Challenge: This method required manual intervention after each content update, making it cumbersome and error-prone.
  2. CSV Migration
    • Approach: Export content to CSV files and import them into Drupal 9.
    • Challenge: Regular updates to CSV files after content changes made this approach inefficient and difficult to manage.
  3. JSON Migration (Chosen Approach)
    • Approach: Develop a JSON migration script to facilitate real-time data transfer from Drupal 7 to Drupal 9.
    • Advantages: Dynamic, real-time migration reduced manual intervention and ensured data consistency.

Final Implementation

After considering various strategies like database-to-database and CSV-based migration, we chose a JSON migration approach for its real-time data migration capabilities and flexibility in handling complex scenarios. Our JSON migration approach utilized Drupalโ€™s default plugins for entity migration, such as nodes, taxonomies, and users. We also developed custom plugins to address specific migration needs:

  • Field Collection to Paragraphs Migration: We transformed Drupal 7's field collections into Drupal 9's paragraphs, which required structural changes. Custom scripts and plugins were created to support this transformation.
  • Redirect Migration: Custom plugins were developed to manage redirects, as user and node IDs had changed between Drupal versions.
  • Complex Content Handling:
    A custom plugin modified description fields and managed file uploads referenced within them.
    Another plugin enabled direct file uploads, simplifying the migration process.

Webform Migration

Migrating webforms and submissions was challenging due to the outdated webform module in Drupal 7, which was incompatible with migration scripts. To resolve this, we developed a custom module:

  • Approach: The Drupal 7 database was connected to the Drupal 9 server via the settings.php file.
  • Custom Module: This module migrated webforms, submissions, and associated files directly from Drupal 7 to Drupal 9.

Data Sanitization and Path Correction

We performed several data correction tasks during the migration:

  • HTML Sanitization: Custom plugins sanitized HTML content to ensure compatibility with Drupal 9.
  • Path Correction: Internal paths stored as absolute paths in Drupal 7 were converted to relative paths in Drupal 9.

Handling Large Data Volumes

With custom entities exceeding 100,000 records, managing large data volumes was crucial. We executed migration scripts in batches to maintain efficiency and prevent system overload.

Outcomes

The migration effort led to the following results:

  • Successful migration of client website from Drupal 7 to Drupal 9
  • Efficient data transfer with a JSON-based migration approach
  • Custom plugins and modules developed to meet project-specific needs
  • Effectively addressed migration challenges, including data structure changes, large data volumes, and outdated modules
  • Despite the complexity, migration was completed within 6 months, a notable achievement compared to the typical 1-year timeline for similar migrations
  • Achieved a seamless transition to Drupal 9 with minimal disruptions to ongoing operations
Back to top
Why Drupal was chosen

The client initially chose the Drupal platform for their official website to take advantage of its robust global community and advanced security features. With their website operating on Drupal 7, they wanted to upgrade to a newer version to benefit from the latest enhancements and functionalities. Our Drupal experts collaborated with them to facilitate a smooth migration from Drupal 7 to Drupal 9. 

Image

Technical Specifications

Drupal version: