Aller au contenu principal

Migrer un site Drupal 7 vers Backdrop CMS, pas à pas

Backdrop CMS reprend l’architecture de Drupal 7, ce qui rend possible une migration par mise à jour de la base plutôt que par reconstruction. Pour un site Drupal 7 qui fonctionne bien et qu’on veut simplement garder en sécurité, c’est souvent la voie la plus économique. La méthode qui suit se fait sur une copie : le site en production ne bouge pas tant que la version Backdrop n’est pas validée.

Avant tout, l’inventaire des modules actifs, pour vérifier que chacun a son équivalent Backdrop ou peut être abandonné :

Terminal
# Modules contribués actifs sur le site Drupal 7 (Drush 8)
drush pm-list --status=enabled --type=module --no-core

# 1. Sauvegarde, puis copie de travail de la base
mysqldump --single-transaction drupal7 | gzip > drupal7-avant-backdrop.sql.gz
mysql -e "CREATE DATABASE backdrop"
gunzip < drupal7-avant-backdrop.sql.gz | mysql backdrop

# 2. Code Backdrop (dernière version sur backdropcms.org), puis fichiers du site
unzip -q backdrop.zip -d /var/www/
rsync -a /var/www/drupal7/sites/default/files/ /var/www/backdrop/files/

Il reste à ouvrir /core/update.php sur la copie et à laisser Backdrop convertir la base : les réglages de Drupal 7 deviennent des fichiers de configuration, les contenus et les comptes sont conservés. On installe ensuite les versions Backdrop des modules contribués, on les réactive, et on adapte le thème. Côté Drupal 7, il est plus simple de mettre le cœur et les modules à jour avant la copie, et de désactiver ceux qu’on ne garde pas. Enfin, on remet update_free_access à FALSE : l’oublier laisse la page de mise à jour ouverte à tous.

PHP
// /var/www/backdrop/settings.php
$database = 'mysql://utilisateur:motdepasse@localhost/backdrop';

// Le temps de la mise à jour uniquement, à remettre à FALSE ensuite
$settings['update_free_access'] = TRUE;

Sources

  1. Backdrop CMS, mettre à niveau depuis Drupal 7 docs.backdropcms.org