Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

Migration CND vers Drupal 9

De AJLSM
Version datée du 1 décembre 2020 à 10:41 par Jlarvers (discussion | contributions) (→Pour CND)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Préparation de la migration

[modifier | modifier le wikicode]

Monte en version D 8.9.6 vers 8.9.9

[modifier | modifier le wikicode]
composer update

Ensuite :

  • .update.php
  • Vider les caches

Vérification des mises à jour : /admin_cnd/reports/updates

Le module : <Rename Admin Paths 8.x-1.1 Non supportée ! Erreur> doit être mis à jour.

composer require 'drupal/rename_admin_paths:^2.0'

Installation de Upgrade Status

[modifier | modifier le wikicode]
composer require 'drupal/upgrade_status:^3.0'
  • Installer le module : /admin_cnd/modules
  • .update.php
Important :
C'est à faire dans les deux instances : internet et intranet.

Suppression des modules inutilisés

[modifier | modifier le wikicode]
Important :
Entre chacune des opérations suivantes faire un .update.php. Cela vous permet de revenir en arrière, par exemple, si vous avez supprimé un module sans l'avoir désinstallé..
composer remove drupal/bootstrap_paragraphs drupal/ckeditor_media_embed drupal/csv_serialisation drupal/date_range_formatter drupal/smart_date drupal/views_accordion drupal/views_conditional drupal/views_fieldsets drupal/views_simple_math_field drupal/views_taxonomy_term_name_depth

Puis, d'autres modules à supprimer :

composer remove drupal/field_group drupal/csv_serialisation drupal/cancel_button

csv_serialisation ne se désintalle pas

[modifier | modifier le wikicode]

C'est une dépendance de views_data_export, non utilisé.

Il faut désinstaller views_data_export.

composer remove drupal/views_data_export
[modifier | modifier le wikicode]

Ce module n'est pas utilisé.

  • désinstaller le module : admin_cnd/modules/uninstall
  • .update.php
  • composer remove drupal/menu_export
    
Important :
C'est à faire dans les deux instances : internet et intranet..

Mise à jour de modules vers une version compatible D9

[modifier | modifier le wikicode]
composer require 'drupal/bbr:^2.1@RC' 'drupal/crop:^2.1' 'drupal/sitemap:^2.0@beta' 'drupal/social_media:^1.9@RC'  'drupal/bootstrap_barrio:^5.1' 'drupal/backup_migrate:^5.0@RC'
  • .update.php


Important :
backup_migrate génère une erreur lorsque l'on veut lancer une sauvegarde du site en entier..

Correction ici : http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9#BackUp_migrate

bootstrap_barrio : Collaborate with maintainers

[modifier | modifier le wikicode]

Après les mises à jour de ces modules, bootstrap_barrio change d'état et doit être "Mis à jour des modules contribues".

Cela vient du sous-projet "Pleade_barrio" auquel on doit ajouter les informations de compatibilité. Voir : http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9#Corrorection_efficace_pour_la_plupart_des_probl.C3.A8mes

info.yml contient des informations en double
[modifier | modifier le wikicode]

Vérifier que le fichier info.yml du thème barrio ne contient pas deux fois les informations du "core: 8.x en bas du fichier en redondance avec les mêmes informations données en début du fichier.

Pleade_barrio.theme

[modifier | modifier le wikicode]

Voir : http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9#Erreur_dans_Pleade_barrio

[modifier | modifier le wikicode]

Dans /modules/contrib/stickynav/stickynav.info.yml, remplacez :

version: '8.x-1.1'

par :

core_version_requirement: ^8 || ^9

Après la migration, stichynav ne sera toujours pas compatible D9. Cela implique de conserver la rétro-compatibilité entre D9 et D8. Voir : http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9#Maintenir_la_compatibilit.C3.A9_de_certains_modules_avec_D8

A terme, il faudra le remplacer.

module Pleade : Collaborate with maintainers

[modifier | modifier le wikicode]

Utiliser la version en SVN.

Instructions listées dans composer à prendre en compte

[modifier | modifier le wikicode]

Lors des actions de migration, composer affiche des messages de non compatibilité de certaines dépendances. Certaines vont bloquer la migration, comme webflo et scaffold. Par exemple :

Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead.
Package drupal-composer/drupal-scaffold is abandoned, you should avoid using it. Use drupal/core-composer-scaffold instead.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Package webflo/drupal-core-require-dev is abandoned, you should avoid using it. Use drupal/core-dev instead.

Ces modifications sont à faire dans composer.json.

Important :
Avant de modifier composer.json, en faire une sauvegarde !.

drupal-scaffold

[modifier | modifier le wikicode]

Voir la page suivante : https://www.drupal.org/project/social/issues/3113181

Dans composer.json, remplacer :

"drupal-composer/drupal-scaffold": "^2.5.0",

par :

"drupal/core-composer-scaffold": "~8.8.1"

Dans composer.json, remplacer :

"webflo/drupal-core-require-dev": "^8.7.0"

par :

"drupal/core-dev": "^8.7.0"

doctrine/reflection

[modifier | modifier le wikicode]

(23/11/2020) En cours de résolution : https://www.drupal.org/project/drupal/issues/3180351

On ne fait rien.

container-interop

[modifier | modifier le wikicode]

(23/11/2020) Ne sera pas modifier par les développeurs :

On ne fait rien.

La migration vers Drupal 9 est prête

[modifier | modifier le wikicode]

Une fois que tout est validé, Upgrade status doit avoir l'aspect suivant (copie d'écran ci-dessous)

Upgrade status est uniquement utilisé pour faciliter la migration de Drupal 8 vers Drupal 9. Lorsque la migration est prête à être réalisée, ce module doit être désinstallé car il n'est, par définition, pas compatible avec Drupal 9.

Important :
Avant de lancer la migration, on désinstalle Upgrade status dans l'application de production Internet ET intranet et on le supprime de composer.json. .


Installation de drush

[modifier | modifier le wikicode]

remplacer dans composer.json

"drush/drush": "^9.0.0",

par

"drush/drush": "^10.0.0",

Cette section suit les instructions générales suivantes : http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9#Upgrade_vers_D9

Ci-dessous, uniquement les spécificités CND.

$ chmod 777 web/sites/inventaire-intranet.cnd.fr
$ chmod 777 web/sites/inventaire.cnd.fr
$ find  web/sites/inventaire-intranet.cnd.fr -name "*settings.php" -exec chmod 777 {} \;
$ find  web/sites/inventaire.cnd.fr -name "*settings.php" -exec chmod 777 {} \;
composer require drupal/core-dev:^9.0.0 --dev --update-with-dependencies --no-update

Dans la commande suivante, il faut ajuster les versions de Drupal 9 et de Drupal 8 au moment de la migration. Ici, la version disponible pour D9 est la 9.1.0-rc3 et celle que l'on souhaite migrée a la version : 8.9.10

composer require "drupal/core:9.1.0-rc3 as 8.9.10" --no-update && composer update

Si les versions ne sont pas les bonnes, soit celle de D8 à migrer, soit celle de D9 vers laquelle migrer, la commande renvoie le message suivant :

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package drupal/core 9.1.0 as 8.9.10 exists as drupal/core[8.0.0, 8.0.0-beta10, 8.0.0-beta11, 8.0.0-beta12, 8.0.0-beta13, 8.0.0-beta14, 8.0.0-beta15, 8.0.0-beta16, 8.0.0-beta6, 8.0.0-beta7, 8.0.0-beta8, 8.0.0-beta9, 8.0.0-rc1, 8.0.0-rc2, 8.0.0-rc3, 8.0.0-rc4, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.x-dev, 8.1.0, 8.1.0-beta1, 8.1.0-beta2, 8.1.0-rc1, 8.1.1, 8.1.10, 8.1.2, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.x-dev, 8.2.0, 8.2.0-beta1, 8.2.0-beta2, 8.2.0-beta3, 8.2.0-rc1, 8.2.0-rc2, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.x-dev, 8.3.0, 8.3.0-alpha1, 8.3.0-beta1, 8.3.0-rc1, 8.3.0-rc2, 8.3.1, 8.3.2, 8.3.3, 8.3.4, 8.3.5, 8.3.6, 8.3.7, 8.3.8, 8.3.9, 8.3.x-dev, 8.4.0, 8.4.0-alpha1, 8.4.0-beta1, 8.4.0-rc1, 8.4.0-rc2, 8.4.1, 8.4.2, 8.4.3, 8.4.4, 8.4.5, 8.4.6, 8.4.7, 8.4.8, 8.4.x-dev, 8.5.0, 8.5.0-alpha1, 8.5.0-beta1, 8.5.0-rc1, 8.5.1, 8.5.10, 8.5.11, 8.5.12, 8.5.13, 8.5.14, 8.5.15, 8.5.2, 8.5.3, 8.5.4, 8.5.5, 8.5.6, 8.5.7, 8.5.8, 8.5.9, 8.5.x-dev, 8.6.0, 8.6.0-alpha1, 8.6.0-beta1, 8.6.0-beta2, 8.6.0-rc1, 8.6.1, 8.6.10, 8.6.11, 8.6.12, 8.6.13, 8.6.14, 8.6.15, 8.6.16, 8.6.17, 8.6.18, 8.6.2, 8.6.3, 8.6.4, 8.6.5, 8.6.6, 8.6.7, 8.6.8, 8.6.9, 8.7.0, 8.7.0-alpha1, 8.7.0-alpha2, 8.7.0-beta1, 8.7.0-beta2, 8.7.0-rc1, 8.7.1, 8.7.10, 8.7.11, 8.7.12, 8.7.13, 8.7.14, 8.7.2, 8.7.3, 8.7.4, 8.7.5, 8.7.6, 8.7.7, 8.7.8, 8.7.9, 8.7.x-dev, 8.8.0, 8.8.0-alpha1, 8.8.0-beta1, 8.8.0-rc1, 8.8.1, 8.8.10, 8.8.11, 8.8.12, 8.8.2, 8.8.3, 8.8.4, 8.8.5, 8.8.6, 8.8.7, 8.8.8, 8.8.9, 8.8.x-dev, 8.9.0, 8.9.0-beta1, 8.9.0-beta2, 8.9.0-beta3, 8.9.0-rc1, 8.9.1, 8.9.10, 8.9.2, 8.9.3, 8.9.4, 8.9.5, 8.9.6, 8.9.7, 8.9.8, 8.9.9, 8.9.x-dev, 9.0.0, 9.0.0-alpha1, 9.0.0-alpha2, 9.0.0-beta1, 9.0.0-beta2, 9.0.0-beta3, 9.0.0-rc1, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.x-dev, 9.1.0-alpha1, 9.1.0-beta1, 9.1.0-rc1, 9.1.0-rc2, 9.1.0-rc3, 9.1.x-dev, 9.2.x-dev] but these are rejected by your constraint.

Si la commande réussie, on fait un /update.php dans Drupal Internet et Intranet.

Enfin on remet les bons droits :

$ chmod 755 web/sites/inventaire.cnd.fr
$ chmod 755 web/sites/inventaire-intranet.cnd.fr
$ find web/sites/inventaire.cnd.fr -name "*settings.php" -exec chmod 644 {} \;
$ find web/sites/inventaire-intranet.cnd.fr -name "*services.yml" -exec chmod 644 {} \;

Pour cette migration, on rencontre un problème avec /update.php : Page blanche et message d'erreur.

Pour déboguer, voir les logs d'Apache access.

Deux erreurs :

  1. L'erreur concerne le fichier info.yml du thème barrio. Voir ici : http://mw.ajlsm.com/wiki/Migration_CND_vers_Drupal_9#info.yml_contient_des_informations_en_double
  2. Le fichier pleade_barrio.theme génère une erreur à corriger. Voir ici : http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9#Erreur_dans_Pleade_barrio
  • Copier le Drupal prod mis à jour et Remplacer le Drupal de preprod