Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Migration Salamandre vers Drupal 9
Préparation pour la montée en version D8 -> D9
Voir :
- http://mw.ajlsm.com/wiki/Basculer_Drupal_8_vers_Drupal_9
- http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9
- http://mw.ajlsm.com/wiki/Migration_CND_vers_Drupal_9
- Commencer par faire une mise à jour vers la version D8 la plus haute : 8.9.20
- Lancer pour voir si la mise à jour est possible. Corriger les erreurs si nécessaire.
composer update --dry-run
Installation de Upgrade Status et réalisation des tâches suivantes
Voir :
- http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9#Installation_de_upgrade_status
- http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9#Travailler_avec_Upgrade_Status
Suppression des modules problématiques non utilisés
composer remove drupal/bbr drupal/field_group drupal/sitemap drupal/views_accordion drupal/views_taxonomy_term_name_depth drupal/views_simple_math_field
Vider tâches Drupal
./vendor/bin/drush cr
Mise à jour des modules à migrer
Ces modules nécessitent une mise à jour, avant de pouvoir être migrés.
Faire un
url/update.php
module par module (pour éviter d’avoir un problème avec un module sans pouvoir l’identifier facilement)
composer require 'drupal/upgrade_rector:^1.0@alpha'
composer require 'drupal/admin_toolbar:^3.0'
composer require 'drupal/backup_migrate:^5.0@RC'
composer require 'drupal/crop:^2.0'
composer require 'drupal/role_delegation:^1.1'
composer require 'drupal/role_delegation:^1.2'
composer require 'drupal/social_media:^1.9@RC'
composer require 'drupal/bg_image_formatter:^1.15'
composer require 'drupal/cache_clear_shortcut:^2.0'
composer require 'drupal/devel:^4.1'
composer require 'drupal/bootstrap_barrio:^4.33’
Suppression des modules non installés qui peuvent être migrés
composer remove drupal/addtoany drupal/blazy drupal/block_content_permissions drupal/block_permissions drupal/bootstrap_paragraphs drupal/ckwordcount drupal/colorbox drupal/colorbox_inline drupal/csv_serialization drupal/easy_breadcrumb drupal/entity_print drupal/link_attributes drupal/link_class drupal/menu_breadcrumb drupal/menu_per_role drupal/views_conditional drupal/views_data_export drupal/views_fieldsets drupal/views_infinite_scroll
E - Analyse des problèmes trouvés dans chaque modules : sélection du ou des modules puis, en bas dopage : Scanner
L'option "scan" bas de page de Upgrade Status permet de lister la plupart des problèmes lors des montées en version.
Le plus fréquent : Ajout de "core_version_requirement: ^8 || ^9.4 || 10 » dans les fichiers des modules …info.yml
Après la mise en compatibilité des modules, reste un certain nombre de problèmes de type :
1 - Drupal\Tests\...::$defaultTheme is required
Cela concerne les méthodes de test utilisant un thème qui est maintenant déprécié.
Cela se corrige avec le patch suivant :
public static $modules = ['path', 'token', 'token_module_test'];
+ /** + * {@inheritdoc} + */ + protected $defaultTheme = 'stark'; + + protected $defaultTheme = 'stark'; + + 2 - The "entity.manager" service is deprecated. You should use the 'entity_type.manager' service instead. + le fichier et le n° de ligne concerné
Il faut appliquer la correction.
3 - The 'captcha_test/TestCacheable' library is not defined because the defining extension is not installed. Cannot decide if it is deprecated or not.
Il manque une library. On va faire la mise à jour avec ça car cela n’empêche pas la migration. F - Problème récurrent d’affichage de Pleade dans Drupal avec page blanche et erreur : Error : Call to a member function bundle() on string dans bootstrap_barrio_theme_suggestions_page_alter() Se corrige en commentantdans le fichier .theme de barrio, la section suivante en entier : /**
* Implements hook_theme_suggestions_HOOK_alter() for page template.
G - US ne renvoie plus de problème est confirme la migration possible. Drupal est à jour 8.9.20 est prêt à migrer vers D9.
H - Dump de la base de données et archive de cette version.
I - Migration vers D9 : http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9 et https://www.drupal.org/docs/upgrading-drupal/drupal-8-and-higher
I - 1 : On sauvegarde composer.json et web/.htaccess
I - 2 : Après changement des droits d’écritures sur les fichiers setting,
composer require 'drupal/core-recommended:^9' 'drupal/core-composer-scaffold:^9' 'drupal/core-project-message:^9' --update-with-dependencies --no-update
I - 3 : Dans composer.json, modifier la version du drupal/core :
"drupal/core": "^8.7.0", remplacé par "drupal/core": "^9",
I - 4 : Lancer composer update —dry-run
I - 5 : Si ok, lancer : composer update
I - 6 : Ensuite : drush updatedb
/!\ Il faut passer à PHP 8, mais on lance l’update : Une erreur avec les plugins Ckeditor non installés.
> [error] The following plugins are missing: link, fakeobjects.
To install the CKEditor plugins run drupal ckeditor_media_embed:install if you have <a href="https://drupalconsole.com/" target="_blank">Drupal Console</a> installed. Otherwise, please see the <a href="https://www.drupal.org/project/ckeditor_media_embed#ckeditor-media-embed--install" target="_blank">installation instructions</a> on the page for additional install methods.
I - 7 : Passage à PHP 8.1 : Installation de la dernière version 8.1
Installation : sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.1 sudo apt install php8.1-common php8.1-fpm php8.1-mysql php8.1-gmp php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-mbstring php8.1-gd php8.1-dev php8.1-imap php8.1-opcache php8.1-readline php8.1-soap php8.1-zip php8.1-intl php8.1-cli libapache2-mod-php8.1
Configuration :
a2enmod proxy_fcgi setenvif (si nécessaire) sudo a2enconf php8.1-fpm sudo update-alternatives --config php
Désactivation des anciennes versions (si présente après vérification avec : dpkg -l | grep php) sudo a2dismod php7.2 sudo a2dismod php7.3 sudo a2dismod php7.4 sudo a2dismod php8.0
Activation de la version php sudo a2enmod php8.1 sudo systemctl restart php8.1-fpm.service
Redémarrage service apache : sudo systemctl restart apache2.service
Vérification : php -v
Si problème, chercher l'erreur dans tail -f /var/log/apache2/cdf.errors.log
I - 8 : Lancer le update.php dans Drupal pour terminer la migration.
I - 9 : Check des erreurs dans « tableau de bord administration »
I - 9 - a : Protection des fichiers à remettre :
chmod 755 web/sites/default chmod 644 web/sites/default/*settings.php chmod 644 web/sites/default/*services.yml
I - 9 - b : Database Isolation Level
Dans setting.php, ajouter les lignes suivantes à la fin de :
$databases['default']['default'] = array (
[…]
'init_commands' => [
'isolation_level' => 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED',
],
I - 9 - c : Une fois la migration vers le serveur de production terminée, il restera à corriger le PATH vers le répertoire //private (private-drupal)
J - Mise à jour 8 vers 9.5.4 terminée : sauvegarde et dump avant migration.
composer require 'drupal/views_bulk_operations:^4.2'