Migrer Drupal-5 vers Drupal-6

Soumis par GoZ le lun 19/01/2009 - 21:30

Migrer Drupal-5 vers Drupal-6

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

Préparer la migration
Dans un premier temps, préparer la migration.
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_
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.
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

Installation de drupal 6
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

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.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_';

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.

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.

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.