Dans DotClear 1.2.x (pour la migration du multicat en tags) :

  • Créer et remplir la table DC_PREFIX.post_cat_tmp comme suit :
CREATE TABLE `DC_PREFIX.post_cat_tmp` (`post_id` INT(11) not null,  `cat_id` INT(11) not null, `cat_libelle` VARCHAR(255) not null);
ALTER TABLE `DC_PREFIX.post_cat_tmp` ADD PRIMARY KEY (`post_id`, `cat_id`);
ALTER TABLE `DC_PREFIX.post_cat_tmp` ADD INDEX (`cat_id`, `post_id`);
INSERT INTO `DC_PREFIX.post_cat_tmp` (SELECT DC_PREFIX.post_cat.post_id, DC_PREFIX.post_cat.cat_id, DC_PREFIX.categorie.cat_libelle FROM DC_PREFIX.post_cat INNER JOIN DC_PREFIX.categorie ON DC_PREFIX.post_cat.cat_id = DC_PREFIX.categorie.cat_id);
  • Adapter le plugin flatExport pour qu'il tienne compte de la table post_cat_tmp (fichier index.php) :
    $dbx->exportTable(DB_PREFIX.'post_cat_tmp');
  • Exporter le blog avec le plugin flatExport.

Dans DotClear2 :

  • Installer les plugins officiels dayMode, commentsWikibar et packager
  • Installer les trois "thèmes inutiles"
  • Installer mes plugins Photoblog2 et jmuTemplate
  • Activer l'option MultiView et créer les fichiers PHP d'accès aux blogs
  • Créer les blogs et les paramétrer :
    • Lecture de l'URL : PATH_INFO
    • Fuseau horaire
    • Format de date : %A %e %B %Y
  • Adapter le fichier class.dc.import.php du plugin importExport pour importer post_cat_tmp :
(fonction prepareDC12line) :
   case 'post_cat_tmp':
     $line->substitute('cat_libelle', 'meta_id');
     $line->drop('cat_id');
     $line->__name = 'meta';
     $line->blog_id = 'default';
     $line->meta_type = 'tag';
     break;
  • Importer le contenu des blogs
  • Déplacer le contenu des dossiers images dans public/blog_id pour chaque blog
  • Modifier tous les billets pour tenir compte du nouveau chemin pour les images :
 update dc2_post
 set post_content = INSERT(post_content, locate('blog.dir/public/', post_content), length('blog.dir/public/'), 'dotclear2/public/blog/')
 set post_content_xhtml = INSERT(post_content_xhtml, locate('blog.dir/public/', post_content), length('blog.dir/public/'), 'dotclear2/public/blog/')
 where post_content_xhtml like '%/images/%'
   and blog_id = 'blog';
  • Supprimer les anciennes vignettes des dossiers images

Finalement, après avoir vérifié que tout fonctionne :

  • Installer un jeu de rewrite pour rediriger les anciennes URLs vers les nouvelles.

Et ne pas oublier de compulser compulsivement les dcTips() de Kozlika pour vérifier que l'on n'a rien oublié lors de la migration...

(PS: Un grand merci à Sieur Pep pour son aide concernant l'export du multicat. Et un autre très grand merci à toute la DC.Team() pour ce bel outil.)