#language fr

HowTo de mise à jour Drupal

Avec Drush

  1. Verifier s'il y a des changements au modules, core, ou autre fichiers, surtout .htaccess
    • eg, ave le module hacked:
      1. Télécharger hacked (si nécessaire):

        drush dl hacked
      2. activer hacked:

        drush en -y hacked
      3. Faire le report

        drush hacked-list-projects # (ou drush hlp)
        • Output example:

          Title                         Nom                         Version         Status     Modifié  Supprimé
           Drupal core                   drupal                      8.4.4           Modifié    4        0
           Libraries API                 libraries                   8.x-3.x-dev     Modifié    3        0        
           Packery                       packery                     8.x-1.0+6-dev   Modifié    3        0
           Admin Toolbar                 admin_toolbar               8.x-1.22        Unchanged  0        0
      4. Voir les détails:

        $ drush hd drupal
        Details for project: Drupal core
        Total files: 13636, files changed: 4, deleted files: 0
        
        Detailed results:
         Status   File
         Modifié  vendor/zendframework/zend-stdlib/doc/book/index.md
         Modifié  vendor/zendframework/zend-escaper/doc/book/index.md
         Modifié  core/lib/Drupal/Core/DrupalKernel.php
         Modifié  vendor/zendframework/zend-feed/doc/book/index.md
      5. Voir les diffs:

        $ drush hacked-diff drupal
        Only in /var/aegir/platforms/drupal_8.4.4/: 1
        Only in /var/aegir/platforms/drupal_8.4.4/: 1.orig
        diff -uprb a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
        --- core/lib/Drupal/Core/DrupalKernel.php       2018-01-03 14:27:53.000000000 -0500
        +++ core/lib/Drupal/Core/DrupalKernel.php       2018-03-28 16:40:38.227577385 -0400
        @@ -20,6 +20,7 @@ use Drupal\Core\File\MimeType\MimeTypeGu
         use Drupal\Core\Http\TrustedHostsRequestFactory;
         use Drupal\Core\Installer\InstallerRedirectTrait;
         use Drupal\Core\Language\Language;
        +use Drupal\Core\Security\RequestSanitizer;
         use Drupal\Core\Site\Settings;
         use Drupal\Core\Test\TestDatabase;
         use Symfony\Cmf\Component\Routing\RouteObjectInterface;
        @@ -542,6 +543,12 @@ class DrupalKernel implements DrupalKern
            * {@inheritdoc}
            */
           public function preHandle(Request $request) {
        +    // Sanitize the request.
        +    $request = RequestSanitizer::sanitize(
        +      $request,
        +      (array) Settings::get(RequestSanitizer::SANITIZE_WHITELIST, []),
        +      (bool) Settings::get(RequestSanitizer::SANITIZE_LOG, FALSE)
        +    );
        
             $this->loadLegacyIncludes();
        
        Only in /var/aegir/platforms/drupal_8.4.4/core/lib/Drupal/Core: DrupalKernel.php.orig
        ...
      6. Désactive le module hacked (recommandé pour les sites en production):

         # Drupal 7
         drush dis hacked -y
         # Drupal 8
         drush pmu hacked -y
  2. Prend un backup:

    drush archive-dump site.xyz
  3. Mettre le site en mode maintenance:

    # Drupal 7
    drush vset maintenance_mode 1
    drush cc all
    # Drupal 8
    drush sset system.maintenance_mode TRUE
    drush cr
  4. Checker que le backup a bien les fichiers et la base de données
  5. Rouler les mises à jour:

    drush upc
  6. Checker s'il y a des mises à jour à la base de données:

    drush updb

Note: On peut rouler aussi la commande drush up qui est la même chose que drush upc + drush updb

  1. Re-placer les patchs nécessaires au besoin (eg. s'il y a eu des modifs à la .htaccess)
  2. Tester le site
  3. Enlever le site de mode maintenance et désactiver hacked (trop exigeant pour un site en production):

    # Drupal 7
    drush vset maintenance_mode 0
    drush dis hacked -y
    drush cc all
    # Drupal 8
    drush sset system.maintenance_mode FALSE
    drush pmu hacked
    drush cr

Voir la version du site

Drupal 7

Drupal 8

$ grep -i version Drupal.php
   * The current system version.
  const VERSION = '8.6.13';
   * Core minimum schema version.
  const CORE_MINIMUM_SCHEMA_VERSION = 8000;

Sans Drush

Basé sur: https://redmine.koumbit.net/projects/equipeweb_kienan_work/repository/revisions/master/entry/Clients/ACSCINF/bulletin-maj-notes.txt

Mise à jour du core

Procédure

  1. Faire un backup de la base de données et du site
    • Pour la bd: mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql

    • Déplacer les fichiers du site dans un folder backup
  2. Se connecter en tant qu'admin sur le site
    • drush uli (or interface)
  3. Mettre le site en mode maintenance
    • # Drupal 7 CLI
        drush vset maintenance_mode 1
    • # Drupal 8 CLI
        drush sset system.maintenance_mode TRUE
    • Interface D7/D8: admin/config/development/maintenance
  4. Enlever les fichiers core sauf le dossier "sites" et les fichiers custom (PDF, etc.)
    • Modifier cette commande avec les fichiers et dossiers pertinents pour le site: rm -rf authorize.php CHANGELOG.txt COPYRIGHT.txt cron.php includes/ index.php INSTALL.* install.php LICENSE.txt MAINTAINERS.txt misc modules/ profiles/ README.txt robots.txt scripts/ update.php UPGRADE.txt web.config xmlrpc.php

    • Attention avec rm -rf de ne pas détruire plus qu'on ne veuille.

  5. Télécharger les nouveaux fichiers core
    • CLI: wget "URL DRUPAL"
    • Interface: télécharger le tarball, déplacer vers le serveur
  6. Copier les nouveaux fichiers core
    • cp -r -t . ~/drupal-7.NUMÉRO-DE-VERSION/* ET ~/drupal-7.NUMÉRO-DE-VERSION/.htaccess
  7. Rouler drush updb
  8. Une fois que la mise à jour est complétée correctement, désactiver le mode maintenance (voir étape 3)

Troubleshooting

Trucs de base à essayer s'il y a des erreurs:

Mise à jour de modules

TODO


CategoryDrupal

ÉquipeWeb/Drupal/MAJ/MAJMineur (last edited 2021-02-22 08:20:11 by jaime)