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 2 weeks ago
    [preflight] The following restricted PHP modes have non-empty values: {open_basedir}. This configuration is incompatible with drush.

    Same with Drush 13 + PHP 8.3

  • 1 month 2 weeks ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    Initializing...

    Error : Failed to install the required package 'RPM' by using APT. Please install it manually. 

    Exit


    Solution:

  • 1 month 2 weeks ago
    Acronis CyberProtect Agent For Linux (Strato Root Server)

    So habe es installiert und dann mit Hilfe von Key/Code (über Website von Acronis Cyber Protect) aktiviert:

  • 1 month 2 weeks ago
    No route found for the specified format html. Supported formats: csv, json. (Drupal Routing)

    I have a view with a path like /my-content-export to export entivies as JSON or CSV.

  • 1 month 3 weeks ago
    InvalidArgumentException: The controller for URI "/admin/flush" is not callable.

    admin_toolbar 3.5.2 is the reason. Patch coming ...

  • 1 week 6 days ago
    PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock

    Drupal 10.4:

  • 2 months 3 weeks ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr

    Tools & Settings >> Security Policy :

     Allow only secure FTPS connections 

  • 4 months ago
    MariaDB Server Performance Optimieren

     

    /usr/sbin/mariadbd --help --verbose | grep "query.*size"
  • 4 months ago
    MariaDB Server Performance Optimieren

    Commandline:

    systemctl restart mariadb
  • 4 months ago
    MariaDB Server Performance Optimieren

    After my changes in /etc/mysql/db-performance.cnf