Drupal Upgrade (Drupal 9 » Drupal 10)

There is a medium-sized website based on Drupal 9 that needs to be upgraded to Drupal 10. Here is a guide on how we upgrade this website.

Backup  Files & DB & Config:

drush cex
drush sql:dump  | gzip -c > ../backup_d9/db-$(date +%Y-%m-%d-%H%M).sql.gz && tar -zcf ../backup_d9/web-$(date +%Y-%m-%d-%H%M).tar.gz ../httpdocs/

Upgrade deprecated core modules (convert to contrib) :

composer require 'drupal/aggregator:^2.1'
composer require 'drupal/ckeditor:^1.0'
composer require 'drupal/color:^1.0'
composer require 'drupal/quickedit:^1.0'
composer require 'drupal/rdf:^2.0'

Uninstall unneeded modules

drush pmu devel
drush pmu upgrade_status

 

Upgrade Drupal 9 to Drupal 10

chmod 777 web/sites/default
chmod 666 web/sites/default/*settings.php
chmod 666 web/sites/default/*services.yml
composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
composer require 'drush/drush:^12' --no-update
composer require 'twig/twig:^3.4' drupal/hal 'symfony/event-dispatcher:^6.2' psr/log 'drupal/slick_extras:^1.0@RC' 'chi-teck/drupal-code-generator:^3' --no-update -W
composer update -W
drush updb -y

 

Update

composer update && drush updb -y


 

 

Comments

// views

wget https://www.drupal.org/files/issues/2023-09-22/3353786_28.patch
patch -p1 < 3353786_28.patch

// search_api_autocomplete

cd modules/contrib/search_api_autocomplete/
wget https://www.drupal.org/files/issues/2023-10-01/3382226-22--solr_version_check_bug.patch
patch -p1 < 3382226-22--solr_version_check_bug.patch

 

// view_mode_page

cd web/modules/contrib/view_mode_page/
wget https://www.drupal.org/files/issues/2023-05-01/3300706-17-context_exception_when_trying_to_create_url_0.patch
patch -p1 < 3300706-17-context_exception_when_trying_to_create_url_0.patch

 

modules\contrib\back_to_top\js\back_to_top.js

(function ($) {
    Drupal.behaviors.backtotop = {
        attach: function (context, settings) {
            var exist = $('#backtotop').length;
            if (exist == 0) {
                $(once('backtotop', "body", context)).each(function () {
                    $('body').append("<button id='backtotop'>" + settings.back_to_top.back_to_top_button_text + "</button>");
                });
            }
            backToTop();
            $(window).scroll(function () {
                backToTop();
            });
            $(once('backtotop', '#backtotop', context)).each(function () {
                $(this).click(function () {
                    $("html, body").bind("scroll mousedown DOMMouseScroll mousewheel keyup", function () {
                        $('html, body').stop();
                    });
                    // $('html,body').animate({scrollTop: 0}, 1200, 'easeOutQuart', function () {
                    $('html,body').animate({scrollTop: 0}, 350, 'linear', function () {
                        $("html, body").unbind("scroll mousedown DOMMouseScroll mousewheel keyup");
                    });
                    return false;
                });
            });
            /**
             * Hide show back to top links.
             */
            function backToTop() {
                if ($(window).scrollTop() > settings.back_to_top.back_to_top_button_trigger) {
                    $('#backtotop').fadeIn();
                } else {
                    $('#backtotop').fadeOut();
                }
            }
        }
    };
})(jQuery);

I had this exact issue and your site was the only place I found the fix.

It'd be nice if the module developer applied your fix though.

Good work! Much appreciated!

Neuen Kommentar schreiben

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

Suche

Neueste Kommentare

  • 1 month ago
    TypeError: Cannot assign null to property Drupal \ views \ Plugin \ views \ argument \ ArgumentPluginBase::$operator of type string

    Das geht auch:

          $this->operator = $break->operator ?? '' ;
  • 1 month 1 week ago
    Bootstrap 5 subtheme is not properly configured. This may be caused by a problem with file or directory permissions.
  • 1 month ago
    TypeError: Cannot assign null to property Drupal \ views \ Plugin \ views \ argument \ ArgumentPluginBase::$operator of type string

    It works too:

    • web/core/modules/views/src/Plugin/views/argument/NumericArgument.php 

    Line 63, 96 :

  • 1 month 3 weeks ago
    Site URI : http://default (Drupal, how2 update config?)

    Add this line to drupalroot/vendor/drush/drush/drush.yml

  • 2 months 3 weeks ago
    Webserver CPU Performance Test mit PHP

    Time: 0,19 

    CPU: AMD Ryzen 7 PRO 3700 8-Core Processor

  • 4 months 2 weeks ago
    TypeError: Cannot assign null to property Drupal \ views \ Plugin \ views \ argument \ ArgumentPluginBase::$operator of type string

    Line 63, 99 :

  • 5 months 1 week ago
    Drupal + Basic_Auth Problem : You do not have permission to access this page (Sie haben keine Zugriffsberechtigung für diese Seite. )

    My problem was:

  • 5 months 1 week ago
    Drupal Upgrade (Drupal 9 » Drupal 10)

    I had this exact issue and your site was the only place I found the fix.

    It'd be nice if the module developer applied your fix though.

    Good work! Much appreciated!

  • 6 months 2 weeks ago
    The datasource with ID 'elstut--entity:node' could not be retrieved for index (Drupal, Solr)

    Hier ist die Lösung. (/admin/config/search/search-api/server/solr_server/edit)

    Multisite-Kompatibilität
     + Nur Ergebnisse von dieser Seite beziehen
     

  • 6 months 2 weeks ago
    PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock

     

    Ich bekomme diese Fehlermeldung: