Migrer Dotclear 2.0beta multiblog en RC1

Informé par le standblog de la sortie de Dotclear 2 en RC1, je décide de migrer ce blog tout de suite. Aucun problème à signaler, mais vu que mon installation est un peu particulière (multiblog), autant partager ce qui a fonctionné pour moi.

Les quelques plugins que j’utilisait ont été intégrés dans Dotclear, je ne me suis donc pas occupé de les migrer pour repartir d’une installation « propre ». Si vous utilisez des plugins importants, vérifiez tout d’abord qu’ils sont disponibles pour cette version de Dotclear !

Faire une sauvegarde

Premier geste du dotclearien averti :

  • Faire une copie des fichiers sur le serveur ou sur sa machine (par FTP ou autre).
  • Exporter le contenu de la base de données (format SQL, structure et données).

Les fichiers

Pour limiter le temps d’indisponibilité du blog, j’ai copié le nouveau contenu du dossier dotclear sur le serveur, puis renommé les dossiers en les inversant : l’ancien DC2 devient DC2_bak, le nouveau devient DC2. De cette manière, il n’y a aucun chemin à reconfigurer.

Les données

Pour l’export des données, j’ai créé une deuxième base dans laquelle j’ai

  1. Créé la structure (sans les contraintes d’intégrité)
  2. Copié les données
  3. Ajouté les contraintes d’intégrité après coup

Si on crée la base avec les contraintes et qu’on essaie d’y copier directement les données, l’opération échoue car les billets, catégories, tags, etc ne sont pas insérés dans le bon ordre.

J’ai préparé un fichier rassemblant les contraintes d’intégrité Dotclear 2RC1  que vous pouvez exécuter depuis PHPMyAdmin ou autre. (Note: mes tables sont préfixées par ‘dc2’, faire un « chercher-remplacer » si vous avez choisi un autre préfixe).

Configuration

Etant donné que le blog est déjà configuré, il suffit de reprendre le fichier /inc/config.php de l’ancienne version et de le copier à la même place dans le nouveau dossier.

Le nouveau fichier de configuration ne comporte que 2 différences :

// Persistent database connection
define('DC_DBPERSIST',false);

qui vient se placer juste après

// Tables' prefix
define('DC_DBPREFIX','dc_');

et, en fin de fichier, le code suivant :

// If you have mail problems, uncomment following lines and adapt it to your hosting configuration // For more information about this setting, please refer to http://doc.dotclear.net/2.0/admin/install/config-envoi-mail //function _mail($to,$subject,$message,$headers) //{ //	socketMail::$smtp_relay = 'my.smtp.relay.org'; //	socketMail::mail($to,$subject,$message,$headers); //}

Penser à faire le tour des widgets de la sidebar et à retirer ceux qui utilisent un plugin qui n’est plus disponible.