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 week 3 days ago
    How to Renew Let’s Encrypt SSL Certificate on Plesk via Ubuntu Shell

    Let’s Encrypt will only accept a wildcard via DNS challenge. 

    If your Plesk instance can’t create the _acme-challenge.example.com TXT (external DNS), the extension can’t complete validation and will show no success. 

  • 2 weeks 3 days ago
    Warning: Undefined array key "url" in Drupal\Core\Asset\CssCollectionOptimizerLazy->optimizeGroup()
    Warning: Undefined array key "url" in Drupal\Core\Asset\JsCollectionOptimizerLazy->optimizeGroup() 
  • 2 weeks 5 days ago
    Server install & config : Debian 12 + Plesk + Apache + nginx + MariaDB + Solr
    sudo timedatectl set-timezone Europe/Berlin
  • 3 weeks 5 days ago
    Warning: PHP Startup: Unable to load dynamic library 'apcu.so' ... cannot open shared object file: No such file or directory

    Try this:

  • 1 month 1 week ago
    List Cronjobs for all users (via for + crontab)

    Alternative (without warnings like "no crontab for dovecot") to see all tasks:

  • 1 month ago
    Install APCu (PHP 8.1, Plesk)

    php 8.3 apcu failed

    über Plesk hat es geklappt.

     

  • 1 month ago
    Install APCu (PHP 8.1, Plesk)

     

    install:

    # sudo apt install php-dev
    
  • 1 month ago
    pecl install apcu : phpize: not found / ERROR: `phpize' failed

    phpize

    # sudo apt install php-dev
    

     

    details

  • 1 month ago
    Install APCu (PHP 8.1, Plesk)

    Problem:

  • 2 months 3 weeks ago
    Install APCu (PHP 8.1, Plesk)

    Problem: