Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Migration ad53 Drupal 9 » : différence entre les versions
| (21 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 9 : | Ligne 9 : | ||
* Installation module upgrade statuts | * Installation module upgrade statuts | ||
* Drush 10 : Modifier dans composer.json : "drush/drush": "^10.4.0" | * Drush 10 : Modifier dans composer.json : "drush/drush": "^10.4.0" | ||
Problème d'installation lié à la configuration de php dans composer. | <syntaxhighlight lang="bash">Problem 1 | ||
- drush/drush 10.x-dev requires php >=7.1.3 -> your PHP version (7.3.27-9+ubuntu18.04.1+deb.sury.org+1) overridden by "config.platform.php" version (7.1) does not satisfy that requirement.</syntaxhighlight> | |||
Problème d'installation lié à la configuration de php dans composer.json. | |||
On passe de la version demandée 7.1 à la version 7.3 | |||
<syntaxhighlight lang="bash">, | <syntaxhighlight lang="bash">, | ||
"config": { | "config": { | ||
| Ligne 18 : | Ligne 21 : | ||
"sort-packages": true | "sort-packages": true | ||
}</syntaxhighlight> | }</syntaxhighlight> | ||
== Préparation de la migration == | == Préparation de la migration == | ||
* Suppression des patches non utilisés. | |||
Après avoir fait toutes les mises à jour requises, certains modules doivent être montés en version pour être compatibles avec D9. Suite aux problèmes rencontrés lors des précédentes migration, on monte en version backUp migrate en dernier. | Après avoir fait toutes les mises à jour requises, certains modules doivent être montés en version pour être compatibles avec D9. Suite aux problèmes rencontrés lors des précédentes migration, on monte en version backUp migrate en dernier. | ||
=== Modules à mettre à jour pour compatibilité === | === Modules à mettre à jour pour compatibilité === | ||
C'est la partie la plus longue avec pas mal de problème de manque de modules après montée en version. | |||
Dans l'ordre suivant : | Dans l'ordre suivant : | ||
* Devel (composer require 'drupal/devel:^4.1') | * Devel (composer require 'drupal/devel:^4.1') | ||
Problème : pete du lien vers Kint qui n'est plus présent dans la version 4. Récupérération du module précédent dans l'autre VM et désintallation de Devel. On verra si on ré-installe dans D9. | |||
Echoue. | |||
* honeypot ( composer require 'drupal/honeypot:^2.0' ) | |||
* Linkit ( composer require 'drupal/linkit:^6.0@beta' ) | |||
* Sitemap ( composer require 'drupal/sitemap:^2.0@beta' ) | |||
* title_field_for_manage_display ( composer require 'drupal/title_field_for_manage_display:^2.0' ) | |||
* views-bulk (composer require 'drupal/views_bulk_operations:^3.10' ) | |||
* webform ( composer require 'drupal/webform:^6.0' ) | |||
* backUp-migrate ( composer require 'drupal/backup_migrate:^5.0@RC' ) | |||
{{important|Et vider souvent les caches !!!}} | |||
=== Compatibilité des thèmes et modules custom Digiwin === | |||
Update rector permet de corrigé pas mal de bug PHP. | |||
Dans les deux contexte salle de lecture et Internet. | |||
* Correction des info de compatibilité : core_version_requirement: ^8 || ^9 | |||
* Correction du code (update rector) | |||
* Suppression du module "la mayenne" : Supprime aussi un bloc utilisé. Remplacement du bloc et suppression du module. | |||
=== Dernière étape === | |||
* Voir la documentation migration D8 à D 9 | |||
* Après les ajouts des requierements, erreur : | |||
* Ajout de composer require "drupal/core:9.1.4 as 8.9.13" --no-update && composer update | |||
* Ok | |||
* Changer les droits | |||
<syntaxhighlight lang="bash"> | |||
chmod 755 web/sites/ad53-slecture-recette.ajlsm.com | |||
find web/sites/ad53-internet-recette.ajlsm.com -name "*settings.php" -exec chmod 644 {} \; | |||
find web/sites/ad53-slecture-recette.ajlsm.com -name "*settings.php" -exec chmod 644 {} \; | |||
find web/sites/ad53-internet-recette.ajlsm.com -name "*services.yml" -exec chmod 644 {} \; | |||
find web/sites/ad53-slecture-recette.ajlsm.com -name "*services.yml" -exec chmod 644 {} \; | |||
</syntaxhighlight> | |||
=== Problèmes de compatibilité === | |||
==== back office webmaster ==== | |||
Après l'upgrade réussit, les applications Drupal, Internet et salle de lecture, génèrent une erreur : | |||
<syntaxhighlight lang="bash"># Drupal\Core\Security\UntrustedCallbackException: Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface | |||
# or be an anonymous function. The callback was back_office_webmaster_toolbar_content_pre_render. | |||
# See https://www.drupal.org/node/2966725 in Drupal\Core\Render\Renderer->doTrustedCallback() (line 96 of core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php). | |||
</syntaxhighlight> | |||
C'est lié au module Digiwin : back-office-webmaster. | |||
Pour contourner et reprendre la main, commenter dans web/modules/custom/back_office_webmaster/back_office_webmaster.module la ligne 38 à 40 | |||
<syntaxhighlight lang="bash">'toolbar_back_office_webmaster_toolbar_content' => array( | |||
#'#pre_render' => array( | |||
# 'back_office_webmaster_toolbar_content_pre_render', | |||
#), | |||
'#type' => 'container', | |||
'#attributes' => array( | |||
'class' => array('toolbar-menu-administration'), | |||
),</syntaxhighlight> | |||
Cela impacte le menu "BO" qu'il faut maintenant remplacer. | |||
* Installer le module : https://www.drupal.org/project/toolbar_menu | |||
* Activer le module et lier le menu "Webmaster" | |||
* Désactiver le module dans composer.json et le supprimer dans web/modules/custom/back_office_webmaster | |||
==== BakUp Migrate ==== | |||
{{important|Ne fonctionne pas}} | |||
Voir solution : http://mw.ajlsm.com/index.php?title=Basculer_Drupal_8_vers_Drupal_9&action=edit§ion=17 | |||
* Ajout du patch dans Drupal | |||
* Ajout du patch dans composer.json | |||
* Nok | |||
Autre essai : | |||
{{important|Ne fonctionne pas, mais le problème semble lié }} | |||
Provisoire : décommenter la ligne 52 de web/modules/contrib/backup_migrate/src/Plugin/BackupMigrateSource/EntireSiteSourcePlugin.php | |||
Fichier d'origine : | |||
<syntaxhighlight lang="bash"> $bam->sources()->add($key, $source); | |||
// @todo Enable this, fix it. | |||
// $bam->sources()->add('default_db', $this->dbSource); | |||
} | |||
</syntaxhighlight> | |||
Modification : | |||
<syntaxhighlight lang="bash"> $bam->sources()->add($key, $source); | |||
// @todo Enable this, fix it. | |||
$bam->sources()->add('default_db', $this->dbSource);</syntaxhighlight> | |||
=== Rapport update status === | |||
[[Fichier:Upgradestatus-ad53-slecture-recette.ajlsm.png]] | |||
Dernière version du 4 mars 2021 à 10:00
Pré-requis
[modifier | modifier le wikicode]Vérifier les pré-requis décrit ici : http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9
Étapes pré-requis
[modifier | modifier le wikicode]- Sauvegarde dans BackUp-migrate : Ok
- Apache version : 2.4.29 : Ok
- PHP : version 7.2.49 : Nok (mettre à jour : http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9#cite_note-0)
- Création VM clone de ad53 : pas mal de problèmes pour arriver à un état stable
- PHP 7.3 : Ok
- Installation module upgrade statuts
- Drush 10 : Modifier dans composer.json : "drush/drush": "^10.4.0"
Problem 1
- drush/drush 10.x-dev requires php >=7.1.3 -> your PHP version (7.3.27-9+ubuntu18.04.1+deb.sury.org+1) overridden by "config.platform.php" version (7.1) does not satisfy that requirement.
Problème d'installation lié à la configuration de php dans composer.json.
On passe de la version demandée 7.1 à la version 7.3
,
"config": {
"platform": {
"php": "7.3"
},
"sort-packages": true
}
Préparation de la migration
[modifier | modifier le wikicode]- Suppression des patches non utilisés.
Après avoir fait toutes les mises à jour requises, certains modules doivent être montés en version pour être compatibles avec D9. Suite aux problèmes rencontrés lors des précédentes migration, on monte en version backUp migrate en dernier.
Modules à mettre à jour pour compatibilité
[modifier | modifier le wikicode]C'est la partie la plus longue avec pas mal de problème de manque de modules après montée en version.
Dans l'ordre suivant :
- Devel (composer require 'drupal/devel:^4.1')
Problème : pete du lien vers Kint qui n'est plus présent dans la version 4. Récupérération du module précédent dans l'autre VM et désintallation de Devel. On verra si on ré-installe dans D9. Echoue.
- honeypot ( composer require 'drupal/honeypot:^2.0' )
- Linkit ( composer require 'drupal/linkit:^6.0@beta' )
- Sitemap ( composer require 'drupal/sitemap:^2.0@beta' )
- title_field_for_manage_display ( composer require 'drupal/title_field_for_manage_display:^2.0' )
- views-bulk (composer require 'drupal/views_bulk_operations:^3.10' )
- webform ( composer require 'drupal/webform:^6.0' )
- backUp-migrate ( composer require 'drupal/backup_migrate:^5.0@RC' )
Compatibilité des thèmes et modules custom Digiwin
[modifier | modifier le wikicode]Update rector permet de corrigé pas mal de bug PHP.
Dans les deux contexte salle de lecture et Internet.
- Correction des info de compatibilité : core_version_requirement: ^8 || ^9
- Correction du code (update rector)
- Suppression du module "la mayenne" : Supprime aussi un bloc utilisé. Remplacement du bloc et suppression du module.
Dernière étape
[modifier | modifier le wikicode]- Voir la documentation migration D8 à D 9
- Après les ajouts des requierements, erreur :
- Ajout de composer require "drupal/core:9.1.4 as 8.9.13" --no-update && composer update
- Ok
- Changer les droits
chmod 755 web/sites/ad53-slecture-recette.ajlsm.com
find web/sites/ad53-internet-recette.ajlsm.com -name "*settings.php" -exec chmod 644 {} \;
find web/sites/ad53-slecture-recette.ajlsm.com -name "*settings.php" -exec chmod 644 {} \;
find web/sites/ad53-internet-recette.ajlsm.com -name "*services.yml" -exec chmod 644 {} \;
find web/sites/ad53-slecture-recette.ajlsm.com -name "*services.yml" -exec chmod 644 {} \;
Problèmes de compatibilité
[modifier | modifier le wikicode]back office webmaster
[modifier | modifier le wikicode]Après l'upgrade réussit, les applications Drupal, Internet et salle de lecture, génèrent une erreur :
# Drupal\Core\Security\UntrustedCallbackException: Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface
# or be an anonymous function. The callback was back_office_webmaster_toolbar_content_pre_render.
# See https://www.drupal.org/node/2966725 in Drupal\Core\Render\Renderer->doTrustedCallback() (line 96 of core/lib/Drupal/Core/Security/DoTrustedCallbackTrait.php).
C'est lié au module Digiwin : back-office-webmaster.
Pour contourner et reprendre la main, commenter dans web/modules/custom/back_office_webmaster/back_office_webmaster.module la ligne 38 à 40
'toolbar_back_office_webmaster_toolbar_content' => array(
#'#pre_render' => array(
# 'back_office_webmaster_toolbar_content_pre_render',
#),
'#type' => 'container',
'#attributes' => array(
'class' => array('toolbar-menu-administration'),
),
Cela impacte le menu "BO" qu'il faut maintenant remplacer.
- Installer le module : https://www.drupal.org/project/toolbar_menu
- Activer le module et lier le menu "Webmaster"
- Désactiver le module dans composer.json et le supprimer dans web/modules/custom/back_office_webmaster
BakUp Migrate
[modifier | modifier le wikicode]Voir solution : http://mw.ajlsm.com/index.php?title=Basculer_Drupal_8_vers_Drupal_9&action=edit§ion=17
- Ajout du patch dans Drupal
- Ajout du patch dans composer.json
- Nok
Autre essai :
Provisoire : décommenter la ligne 52 de web/modules/contrib/backup_migrate/src/Plugin/BackupMigrateSource/EntireSiteSourcePlugin.php
Fichier d'origine :
$bam->sources()->add($key, $source);
// @todo Enable this, fix it.
// $bam->sources()->add('default_db', $this->dbSource);
}
Modification :
$bam->sources()->add($key, $source);
// @todo Enable this, fix it.
$bam->sources()->add('default_db', $this->dbSource);
