{"id":5867,"date":"2021-09-22T17:31:25","date_gmt":"2021-09-22T15:31:25","guid":{"rendered":"https:\/\/www.luklagroup.com\/uncategorized\/how-to-migrate-from-drupal-8-to-drupal-9-in-6-steps\/"},"modified":"2025-07-10T08:57:23","modified_gmt":"2025-07-10T06:57:23","slug":"how-to-migrate-from-drupal-8-to-drupal-9-in-6-steps","status":"publish","type":"post","link":"https:\/\/www.luklagroup.com\/en\/change-adopt-en\/how-to-migrate-from-drupal-8-to-drupal-9-in-6-steps\/","title":{"rendered":"How to migrate from Drupal 8 to Drupal 9 in 6 steps ?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong><em>Did you know?<\/em><\/strong> <strong><em>Drupal 9 has been available as a stable version since June 3, 2020, already! However, many companies have not yet migrated their sites from Drupal 8 to Drupal 9 &#8211; Drupal 8 having continued to benefit from updates until November 2021. <\/em><\/strong><br\/><br\/><strong><em>However, from that date onwards, only Drupal 9 will benefit from security updates and bug fixes. <\/em><\/strong><\/p>\n\n<p class=\"wp-block-paragraph\"><strong><em>If it was a bit hasty to migrate to Drupal 9 a year ago, it&#8217;s now necessary to plan this migration quickly.<\/em><\/strong><\/p>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-medium is-resized\"><img alt=\"\" decoding=\"async\" src=\"https:\/\/digiwin.fr\/wp-content\/uploads\/2021\/09\/Drupal-900x319.png\" alt=\"\" class=\"wp-image-3477\" width=\"450\" height=\"160\"\/><\/figure><\/div>\n\n<h2 class=\"wp-block-heading\">Why will Drupal stop updating to version 8 in November 2021?<\/h2>\n\n<p class=\"wp-block-paragraph\">Drupal 9 is not a revolution. Drupal 9&#8217;s advances are mainly technical, with updates to the Symfony PHP framework and the Twig template engine. Drupal 8 is based on Symfony 3 and Twig 1, while Drupal 9 is based on Symfony 4 and Twig 2.  <\/p>\n\n<p class=\"wp-block-paragraph\"><strong>On November 21, Symfony 3 will no longer be maintained. <\/strong>Drupal 8&#8217;s end-of-support date coincides with that of Symfony 3.<\/p>\n\n<p class=\"wp-block-paragraph\">In addition, all Drupal 8 modules are currently being updated to be compatible with Drupal 9.<\/p>\n\n<h2 class=\"wp-block-heading\">What&#8217;s new in Drupal 9 ?<\/h2>\n\n<p class=\"wp-block-paragraph\">As previously mentioned, the new features are mainly technical and will provide developers with a solid basis for designing and implementing their own functionalities.<\/p>\n\n<p class=\"wp-block-paragraph\">Drupal 9 includes, or will soon include, a number of functional evolutions such as :<\/p>\n\n<ul class=\"wp-block-list\"><li>A more advanced media manager with the <strong>Media Library<\/strong> module (which will replace the Media Entity module), enabling you to manage images, audio files, documents, videos and remote videos,<\/li><li>A workflow status manager for publishing content with the <strong>Workflow<\/strong> module.<\/li><li>The appearance of an advanced visual page design tool with the <strong>Layout Builder<\/strong> module.<\/li><\/ul>\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-medium is-resized\"><img alt=\"\" decoding=\"async\" src=\"https:\/\/digiwin.fr\/wp-content\/uploads\/2021\/09\/roadmap-900x392.png\" alt=\"\" class=\"wp-image-3478\" width=\"675\" height=\"294\"\/><figcaption><em>Drupal Roadmap 2019 to 2022<\/em><\/figcaption><\/figure><\/div>\n\n<h2 class=\"wp-block-heading\">How do I migrate from Drupal 8 to Drupal 9?<\/h2>\n\n<p class=\"wp-block-paragraph\">Unlike the transition from Drupal 7 to Drupal 8, which required a complete overhaul, the transition from Drupal 8 to Drupal 9 will take place via the usual minor version upgrade mechanism.<\/p>\n\n<p class=\"wp-block-paragraph\">However, the following actions must be performed first:<\/p>\n\n<h3 class=\"wp-block-heading\"><span style=\"color:#95c11f\" class=\"has-inline-color\"><strong>1. Install Drupal 8 <a href=\"https:\/\/www.drupal.org\/project\/upgrade_status\">Upgrade Status<\/a> module<\/strong><\/span><\/h3>\n\n<p class=\"wp-block-paragraph\">This module provides a complete audit of your site in preparation for migration to Drupal 9.<\/p>\n\n<p class=\"wp-block-paragraph\">Module installation via composer: composer require drupal\/upgrade_status<\/p>\n\n<p class=\"wp-block-paragraph\">The audit result is then available on the \/admin\/reports\/upgrade-status page<br\/><br\/>Actions taken by the module :<\/p>\n\n<ul class=\"wp-block-list\"><li>Check version (Drupal 8.8 or 8.9) and suggest upgrading to the latest version,<\/li><li>Verification of Drupal 9 system requirements in your environment,<\/li><li>Check the compatibility of installed contributor modules with Drupal 9,<\/li><li>Run code checks on custom modules to detect Drupal 9 compatibility problems.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Depending on the audit result, the following actions may or may not need to be taken.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong><span style=\"color:#95c11f\" class=\"has-inline-color\">2. Perform the latest Drupal 8 updates (see Upgrade Status)<\/span><\/strong><\/h3>\n\n<h3 class=\"wp-block-heading\"><strong><span style=\"color:#95c11f\" class=\"has-inline-color\">3. Update development, acceptance and production environments (see updates requested by the upgrade status module).<\/span><\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">Environment requirements for Drupal 9 :<\/p>\n\n<p class=\"wp-block-paragraph\"><em> <strong>Nginx<\/strong> version <\/em><br\/>If you are running Drupal 9 on Nginx, version <strong>0.7.x<\/strong> or later is required.<br\/><br\/><em> <strong>Apache<\/strong> version<\/em><br\/>If you are running Drupal 9 on Apache, version <strong>2.4.7<\/strong> or later is required.<\/p>\n\n<p class=\"wp-block-paragraph\"><em> <strong>PHP<\/strong> version<\/em><br\/><strong>Drupal 9<\/strong> requires at least <strong>PHP 7.3<\/strong>. PHP 7.4 is also supported, but is not mandatory<strong>. PHP 8<\/strong> is supported since <strong>Drupal 9.1.0.<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\"><em>Database version&#13;\n<\/em>If you are using <strong>Drupal 9<\/strong> with :<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>MySQL<\/strong> or <strong>Percona<\/strong>, version <strong>5.7.8+<\/strong> is required,<\/li><li><strong>MariaDB<\/strong>, version <strong>10.3.7+<\/strong> is required,<\/li><li><strong>SQLite<\/strong> version <strong>3.26+<\/strong> is required,<\/li><li><strong>PostgreSQL<\/strong> version <strong>10<\/strong> is required with the pg_trgm extension.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\"><em> <strong>Drush<\/strong> version<br\/><\/em>Drush 10<\/p>\n\n<h3 class=\"wp-block-heading\"><strong><span style=\"color:#95c11f\" class=\"has-inline-color\">4. Ensure that the contributor modules used in Drupal 8 are compatible with Drupal 9.<\/span><\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">If the upgrade status audit report indicates that the versions of some of the installed modules are not Drupal 9 compatible, look at the recommendation :<\/p>\n\n<ul class=\"wp-block-list\"><li>If a Drupal 9-compatible update exists, then update the composer.json file (step 5) with the recommended version,<\/li><li>If there is no compatible update, then you will need to use another equivalent contributor module or patch the Drupal 8 module to make it compatible.<\/li><\/ul>\n\n<h3 class=\"wp-block-heading\"><strong><span style=\"color:#95c11f\" class=\"has-inline-color\">5. Ensure that any custom developments made for the site (modules, themes, etc.) are Drupal 9 compatible.<\/span><\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">Correct incompatibilities identified by the upgrade status audit report.<\/p>\n\n<h3 class=\"wp-block-heading\"><strong><span style=\"color:#95c11f\" class=\"has-inline-color\">6. Update versions in composer.json file<\/span><\/strong><\/h3>\n\n<p class=\"wp-block-paragraph\">If, as part of your Drupal 8 project, you&#8217;re using the composer dependency manager, you&#8217;ll need to browse the versions entered in the composer.json file and modify them to enable upgrading to Drupal 9 (Drupal 9 core + Drupal 9-compatible module version).<\/p>\n\n<p class=\"wp-block-paragraph\">For compatible versions, see the audit report.<\/p>\n\n<p class=\"wp-block-paragraph\">Core example:<\/p>\n\n<ul class=\"wp-block-list\"><li>For Drupal 8 we have : &#8220;drupal\/core&#8221;: &#8220;~8.6&#8221;<\/li><li>For Drupal 9 you need: &#8220;drupal\/core&#8221;: &#8220;~9.*&#8221;<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Once all these actions have been performed, the update will be performed like a regular Drupal 8 update with a composer update.<\/p>\n\n<h2 class=\"wp-block-heading\">Focus on D7 to D9 migration<\/h2>\n\n<p class=\"wp-block-paragraph\">Like the migration from D7 to D8,  <strong>migration from D7 to D9 will not be easy. A complete overhaul will be necessary <\/strong>In this case, you&#8217;ll need to create a completely new Drupal 9 site and attempt to recover Drupal 7 content using the Migrate module.<\/p>\n\n<p class=\"wp-block-paragraph\">Today, the majority of Drupal sites are still in Drupal 7 (around 650,000 sites).<\/p>\n\n<p class=\"wp-block-paragraph\">To reassure administrators and give them time to migrate, the Drupal community has decided to extend support until November 2022.<\/p>\n\n<p class=\"wp-block-paragraph\">One of the reasons for this decision was the significant impact of COVID-19 on company budgets.<\/p>\n\n<h2 class=\"wp-block-heading\">Digiwin support on Drupal  <\/h2>\n\n<p class=\"wp-block-paragraph\">Do you have any questions about this article?<\/p>\n\n<p class=\"wp-block-paragraph\">Would you like us to help you migrate from D8 to D9 or completely overhaul your site in D7?<\/p>\n\n<p class=\"wp-block-paragraph\">Digiwin&#8217;s teams are at your disposal. We look forward to hearing from you! <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Did you know? Drupal 9 has been available as a stable version since June 3, 2020, already! However, many companies have not yet migrated their sites from Drupal 8 to Drupal 9 &#8211; Drupal 8 having continued to benefit from updates until November 2021. However, from that date onwards, only Drupal 9 will benefit from [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":5463,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":""},"categories":[109,105],"tags":[113,136,108],"class_list":["post-5867","post","type-post","status-publish","format-standard","has-post-thumbnail","category-apps-data-en","category-change-adopt-en","tag-development","tag-drupal-en","tag-recommendation"],"_links":{"self":[{"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/posts\/5867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/comments?post=5867"}],"version-history":[{"count":4,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/posts\/5867\/revisions"}],"predecessor-version":[{"id":468065,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/posts\/5867\/revisions\/468065"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/media\/5463"}],"wp:attachment":[{"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/media?parent=5867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/categories?post=5867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.luklagroup.com\/en\/wp-json\/wp\/v2\/tags?post=5867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}