Migration MyBB : Migration MySQL / BDD

Tutoriel et conseils de migration pour MyBB avec Mysql
  • Administration système

Icone MyBB

Comme beaucoup d’entre vous le savent, j’ai migré le forum SHZ. J’ai pour cela installé une nouvelle version du même forum sur un sous nom de domaine.

J’ai donc du rappatrier articles (mybb_threads), utilisateurs (mybb_users), réponses de sujet (mybb_posts)… et puis c’est tout je crois ! Mais c’est quand même pas mal, pas mal à répartir sur le nouveau forum.

Sauvegarder et restaurer l’ancien forum

Je n’ai décidé de sauvegarder comme dit précédement que sujets et utilisateurs, tout le reste je l’ai reconfiguré (plugins etc).

Donc go PHPMyAdmin, et on exporte les tables dont je parle au dessus. Si vous préférez utiliser un outil en ligne de commande vous pouvez utiliser mysqldump.

Une fois le fichier « backup.sql » obtenu, on le téléverse (upload) sur le serveur distant (phpmyadmin ne prend en charge que les fichiers < 2mo, je n’ai pas regardé pour supprimer cette limite (ce que vous pouvez faire)).

Du coup, on se retrouve connecté en SSH :

# on se connecte à la base de données (chez moi j'ai utilisé user = root) et on injecte la sauvegarde dans la base de données choisie

mysql -u user -p database < backup.sql

Et voilà le travail, toutes les données ont été migrés dans la nouvelle base de données !

Attention ! Il peut y avoir des erreurs.

ERROR 1062 (23000) at line 18144: Duplicate entry '1251' for key 'PRIMARY'

Cette erreur signifie que vous tentez de mettre à jour par la même valeur une clé qui existe déjà. Soit votre table est de base vierge et vous supprimer son contenu, soit vous allez devoir fusionner vos deux tables (la courante + la sauvegarde), vider la table et réimporter.

Il y aussi une autre erreur courante signalant qu’une colonne n’existe pas (je n’ai plus le message d’erreur, mais je serais ravi de compléter cet article avec cette erreur si vous l’obtenez (vous pouvez me la glisser en commentaire). Ce genre d’erreur survient le plus souvent à la suite d’utilisation d’un plugin qui n’existe plus dans la nouvelle base.

Dans tous les cas je serais ravi d’enrichir cet article avec d’autres messages d’erreur concernant votre migration MyBB, n’hésitez pas à commenter.

Reparamètrer les ID

Maintenant il va falloir ajuster les FID des sections, car ils ne correspondent plus.

Pour cela rien de plus simple ! Rendez-vous dans l’adminstration puis dans « Forums et messages« . Lorsque vous cliquez sur une section ou un forum, vous avez écrit en paramètre le FID du forum soit par exemple :

&fid=3

Du coup, retrouvez le FID de l’ancienne section, puis de la nouvelle. A ce stade vous avez deux FID, on va faire en sorte de changer nos anciens FID par nos nouveaux.

update mybb_threads set fid='18' where fid='215';

Et on fait ça… partout, jusqu’à ce que tous les sujets se trouvent à la bonne place !

Extra : Suppression des données de tests

Etant donné que j’ai du, avant de rapatrier totalement le forum faire des tests, je me devais de supprimer les tests afin de ne perdre aucune donnée ou en avoir en doublon lors de la migration finale (et également d’éviter le message d’erreur de clé dupliquée).

J’ai supprimé tous les utilisateurs n’étant pas moi dans la base de données :

DELETE FROM `mybb_users` WHERE mybb_users.username != "Dinath"

J’ai supprimés toutes les réponses et tous les sujets créés :

DELETE FROM `mybb_threads`
DELETE FROM `mybb_posts`

Article publié le

Dernière modification le

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.