Migrer Drupal-5 vers Drupal-6

Version imprimablePDF version

Ce log me permet d'effectuer la migration de Drupal 5 vers Drupal 6.

1. Préparer la migration

Dans un premier temps, préparer la migration.

1.1. Nommage

On admettra que le site se trouve dans le répertoire /var/www/drupal/.
La base de données est configurée de la sorte :

  • Emplacement : localhost
  • Utilisateur : MyUser
  • Mot de passe : MyPass
  • Nom de la base de données : dbDrupal
  • Préfixe des tables : drupal_

1.2. Préparer l'archivage du site

Avant d'archiver son site, il est nécessaire d'effectuer quelques vérifications et tâches de maintenance.

  • Tout d'abord, aller sur le site de drupal et vérifier que tous les modules installés (ici en version 5-x) sont bien disponibles pour la nouvelle version de drupal (ici 6-x). Si un module n'est pas disponible, dans la nouvelle version, il faut le désactiver et le désinstaller.
  • Passer le site en maintenance afin d'être sur qu'il n'y ait pas de pertes de données.

1.3. Archiver son site

Afin d'être sur de ne perdre aucune information, créer une archive du site et faire un backup de la base de données.
Pour archiver son site, se placer dans le répertoire parent, ici /var/www, puis executer la commande suivante :

tar zcvf drupal.backup.tar.zxvf /var/www/drupal/

Pour faire un backup de la base de données, aller sur phpMyAdmin, sélectionner la base de données du site puis aller dans export. Sélectionner toutes les tables, vérifier que données et structure sont bien cochés pour l'export puis l'exporter sans compression.
On admettra que le fichier est sauvegardé avec le nom db.drupal.save.sql.

Renommer le répertoire du site :

mv /var/www/drupal /var/www/drupal.old

2. Installation de drupal 6

2.1. Télecharger drupal 6

Télecharger la dernière version de drupal (actuellement la version 6.9) et la décompresser, puis renommer le dossier généré.

cd /var/www
wget http://ftp.drupal.org/files/projects/drupal-6.9.tar.gz
tar zxvf drupal-6.9.tar.gz
mv drupal-6.9/ drupal

2.2. Télecharger les modules

  • Télecharger les modules correspondant à la nouvelle version de drupal (6-x) et les décompresser dans /var/www/drupal/sites/all/modules/.
  • Penser à télecharger les outils complémentaires nécessaires aux modules. Par exemple, le module print permettant l'impression et la conversion d'un article en pdf nécessite l'outil dompdf.

2.3. Modifier ses paramètres

  • Copier le .htaccess sauvegardé.
  • Copier le répertoire files.
  • Copier ses thèmes (s'ils sont compatibles 6-x)
  • Copier ses scripts si besoin

cp /var/www/drupal.old/.htaccess /var/www/drupal/
cp /var/www/drupal.old/files /var/www/drupal/files/
cp /var/www/drupal.old/sites/all/themes /var/www/sites/all/themes

  • Modifier le fichier /var/www/drupal/sites/default/settings.php afin de spécifier les accès à la base de données

$db_url = 'mysql://MyUser:MyPass@localhost/dbDrupal';
$db_prefix = 'drupal_';

2.4. Exécuter la mise à jour

Pour faire la mise à jour, il est nécessaire d'être authentifié. Dans le cas contraire, modifier le fichier /var/www/drupal/sites/default/settings.php et placer la variable $update_free_access à TRUE.

$update_free_access = TRUE;

Une fois la mise à jour effectuée, penser à re-modifier le fichier.

Pour exécuter la mise à jour, aller sur la page update.php de votre site. Dans notre cas : http://localhost/drupal/update.php et suivre la procédure.

3. Mise à jour terminée

La mise à jour est terminée, il est conseillé d'activer le module Update status afin d'être mis au courant si de nouvelles versions de drupal ou de ses modules sont disponibles.

4. Restaurer la base de données

Dans le cas où il faudrait restaurer la base de données, voici la ligne de commande à utiliser :

mysql -u MyUser -p -D dbDrupal --default-character-set=utf8 < db.drupal.save.sql

L'encodage utilisé ici est de l'utf-8, il est possible de le modifier par un autre encodage si nécessaire.

Portrait de Anonyme

Re: Migrer Drupal-5 vers Drupal-6

Aurélien (non vérifié)
jeu, 10/12/2009 - 09:48

Bonjour,
tout d'abord merci pour cet article.
Sinon, j'ai une question, je bosse actuellement sur la migration d'un site drupal 5 => drupal 6, et je voulais savoir comment ça se passe pour la Base de données, surtout pour les contenus ?
Tu gardes ta base drupal 5 ? ou tu en créé une nouvelle pour drupal 6 ? Et dans ce cas, comment ca se passe pour l'importation des nodes, des url du menu, car il n'y a pas forcément les mêmes tables et le mêmes champs.

Merci d'avance

Portrait de GoZ

Re: Migrer Drupal-5 vers Drupal-6

GoZ
jeu, 10/12/2009 - 17:02

Pour ma part, je suis resté sur la même base, que drupal 6 s'est chargé de migrer comme un grand. Toutefois, il faut préciser que je n'ai utilisé que très peu de modules (taxonomy, taxonomy_menu si je me souviens et c'est tout, pas d'exotisme de type cck, view etc). Je ne peux donc rien garantir. La meilleur solution reste de faire le test. Ca ne doit pas prendre trop de temps a monter un clone du site pour un test bidon, et tu seras vite fixé.

Bonne chance