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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]composer remove drupal/bbr drupal/field_group drupal/sitemap drupal/views_accordion drupal/views_taxonomy_term_name_depth drupal/views_simple_math_field
Vider caches Drupal
[modifier | modifier le wikicode]./vendor/bin/drush cr
Mise à jour des modules à migrer
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]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
Analyse des problèmes trouvés dans chaque modules
[modifier | modifier le wikicode]Sélection du ou des modules puis, en bas de page : 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 :
Drupal\Tests\...::$defaultTheme is required
[modifier | modifier le wikicode]Cela concerne les méthodes de test utilisant un thème qui est maintenant déprécié.
Corrigez avec le patch suivant :
public static $modules = ['path', 'token', 'token_module_test'];
+ /**
+ * {@inheritdoc}
+ */
+ protected $defaultTheme = 'stark';
+
+ protected $defaultTheme = 'stark';
+
+
The "entity.manager" service is deprecated. You should use the 'entity_type.manager' service instead
[modifier | modifier le wikicode]Plus le fichier et le n° de ligne concerné.
Appliquez la correction proposée.
The '...' library is not defined because the defining extension is not installed. Cannot decide if it is deprecated or not.
[modifier | modifier le wikicode]Il manque une library.
On va faire la mise à jour avec ça car cela n’empêche pas la migration.
Problème récurrent d’affichage de Pleade dans Drupal
[modifier | modifier le wikicode]Une page blanche et erreur :
Error : Call to a member function bundle() on string dans bootstrap_barrio_theme_suggestions_page_alter()
Corrigez en commentant, dans le fichier .theme de barrio, la section suivante en entier :
/**
* Implements hook_theme_suggestions_HOOK_alter() for page template.
function bootstrap_barrio_theme_suggestions_page_alter(array &$suggestions, array $variables) {
// Add a template suggestions for node type.
/** @var \Drupal\node\NodeInterface $node
//if ($node = \Drupal::routeMatch()->getParameter('node')) {
// if (is_numeric($node)) {
// $node = Node::load($node);
// }
// $suggestions[] = 'page__node__' . $node->bundle();
// }
//}
Upgrade Status ne renvoie plus de problème
[modifier | modifier le wikicode]La migration est possible. Drupal est à jour 8.9.20 est prêt à migrer vers D9.
Dump de la base de données et archive de cette version
[modifier | modifier le wikicode]Migration vers D9
[modifier | modifier le wikicode]- http://mw.ajlsm.com/wiki/Migration_Pandor_vers_Drupal_9
- https://www.drupal.org/docs/upgrading-drupal/drupal-8-and-higher
- Sauvegardez composer.json et web/.htaccess
- Changement des droits d’écritures sur les fichiers setting
- Mise à jour du core vers D9
composer require 'drupal/core-recommended:^9' 'drupal/core-composer-scaffold:^9' 'drupal/core-project-message:^9' --update-with-dependencies --no-update
- Dans composer.json, modifier la version du drupal/core : , remplacé par
"drupal/core": "^8.7.0"
"drupal/core": "^9"
- Lancez
composer update —dry-run
- Si ok, lancer :
composer update - Mettez à jour la base de données :
drush updatedb
Montée en version vers PHP 8.1
[modifier | modifier le wikicode]Installation de la dernière version 8.1
Installation
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]a2enmod proxy_fcgi setenvif (si nécessaire)
sudo a2enconf php8.1-fpm
sudo update-alternatives --config php
Désactivation des anciennes versions
[modifier | modifier le wikicode](si présentes 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
[modifier | modifier le wikicode]sudo a2enmod php8.1
sudo systemctl restart php8.1-fpm.service
Redémarrage service apache
[modifier | modifier le wikicode]sudo systemctl restart apache2.service
Vérification
[modifier | modifier le wikicode]php -v
Si problème, chercher l'erreur dans
tail -f /var/log/apache2/cdf.errors.log
Update de Drupal
[modifier | modifier le wikicode]Lancer le update.php dans Drupal pour terminer la migration.
Check des erreurs
[modifier | modifier le wikicode]Allez dans « tableau de bord administration »
Protection des fichiers à remettre
[modifier | modifier le wikicode]chmod 755 web/sites/default
chmod 644 web/sites/default/*settings.php
chmod 644 web/sites/default/*services.yml
Database Isolation Level
[modifier | modifier le wikicode]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',
],
Mise à jour modules restant
[modifier | modifier le wikicode]composer require 'drupal/views_bulk_operations:^4.2'
Reste à faire après la migration en prod
[modifier | modifier le wikicode]Une fois la migration vers le serveur de production terminée, il restera à corriger le PATH vers le répertoire //private (private-drupal)
Mise à jour 8 vers 9.5.4 terminée
[modifier | modifier le wikicode]Sauvegarde et dump avant migration.