back

Knowlegde

Knowledge Centre

Preparing for Drupal 9: A Comprehensive Migration Guide

by editor | 01.08.2019

Preparing for Drupal 9: A Comprehensive Migration Guide

As we approach the release of Drupal 9 (June 3rd, 2020), it's crucial to understand that this upgrade represents a significant yet manageable transition in the Drupal ecosystem. The key to a smooth migration lies in maintaining current Drupal 8 sites with up-to-date dependencies, libraries, and modules.

Why is Drupal 9 Different?

The transition to Drupal 9 marks a fundamental shift in how Drupal handles major version upgrades. This change is primarily driven by Symfony 3's approaching end-of-life in November 2021. Drupal 9 will adopt Symfony 4, ensuring the platform remains secure and modern.

Key Technical Requirements

System Requirements
1. Symfony version 4 or higher will be required
2. PHP 7.2 or newer will be mandatory, as specified in Symfony's documentation

Module Changes
Several core modules will undergo significant changes:
- The "action" module will become "action_ui"
- "block_place" will be integrated into the block module
- "field_layout" will transition to layout_builder
- "simpletest" will be renamed to "phpunit_ui"

Code Updates
A significant change involves the deprecation of various functions. For example, the `file_unmanaged_copy()` function will be replaced with a more robust service-based approach:

Previous implementation:

function file_unmanaged_copy($source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   @trigger_error('file_unmanaged_copy() is deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Use \\Drupal\\Core\\File\\FileSystemInterface::copy(). See https://www.drupal.org/node/3006851.', E_USER_DEPRECATED);
   // ... implementation details
}

New service-based approach:

\Drupal::service('file_system')->copy($source, $destination);

This change embraces dependency injection through the container, promoting better architectural practices.

Migration Planning

Timeline Considerations
- Drupal 8.8 represents the final version that will introduce deprecations for Drupal 9
- Existing Drupal 7 sites can migrate directly to Drupal 9, as it maintains feature parity with Drupal 8

Tools and Resources
The drupal-check tool (available at github.com/mglaman/drupal-check) helps identify:
- Deprecated code usage
- Potential compatibility issues
- Code that needs updating before migration

Best Practices for Migration

1. Keep current Drupal 8 sites updated with the latest minor version
2. Regularly audit and update contributed modules
3. Use development tools to identify deprecated code
4. Test extensively in a staging environment
5. Plan for adequate testing time before production deployment

Future Outlook

As Dries Buytaert, Drupal's project lead, emphasizes: "The first release of Drupal 9 will closely mirror the final minor release of Drupal 8. The primary changes focus on removing deprecated code and updating third-party dependencies."

For detailed migration documentation and updates, visit drupal.org/docs/9.

This structured approach to migration ensures that organizations can transition smoothly to Drupal 9 while maintaining site functionality and performance. By following these guidelines and keeping current with updates, the migration process becomes a manageable evolution rather than a dramatic overhaul.

article
Top
default
  • Knowlegde
    Knowledge Centre
    Fine-tuning LLaMA to Recreate Eminescu's Literary Style
    editor
  • Knowlegde
    Knowledge Centre
    A New Era Begins: Drupal CMS 1.0 Launches
    editor
  • Knowlegde
    Knowledge Centre
    Bringing AI to B2B
    editor

Post a Comment.