Dans ce tutoriel, nous apprendrons à migrer un forum MyBB vers la plateforme
en utilisant le script d’importation officiel MyBB Importer.
Ce qui peut être migré
- Catégories
- Catégorie racine => catégorie racine
- Catégorie enfant => sous-catégorie
- Forum racine => sous-catégorie
- Forum enfant => sous-catégorie
- Sujets et réponses => sujets et messages
- Utilisateurs
- Nom d’utilisateur
- Adresse e-mail
- Statut de privilège
- Statut d’inscription
- Redirections
Notre plan est très simple :
- Configurer l’environnement de développement (DEV) local.
- Exporter la base de données de production.
- Importer la base de données de production dans Discourse.
- Exécuter le script d’importation MyBB.
Commençons ![]()
Configurer l’environnement de développement local
Tout d’abord, vous devez suivre l’un de ces guides pour installer la plateforme Discourse elle-même. Consultez ce guide si vous rencontrez des problèmes.
Installez le serveur de base de données MySQL ;
MacOS :
$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
Vérifiez l’état du service :
$ brew services list
Vous devriez voir quelque chose comme ceci :
mysql@5.7 started
Sinon, exécutez la commande suivante et réessayez :
$ brew services start mysql@5.7
Ubuntu 18.04 :
$ sudo apt update
$ sudo apt install mysql-server -y
Une fois l’installation de MySQL terminée, vérifiez son état :
$ systemctl status mysql.service
S’il ne fonctionne pas, exécutez la commande suivante :
$ sudo systemctl start mysql
Pour Windows, vous pouvez suivre le guide d’installation officiel.
Nous appellerons cet environnement : serveur Discourse.
Exporter la base de données de production
Exportez/sauvegardez la base de données de production (depuis le serveur de production MyBB) en exécutant :
$ mysqldump -u USER_NAME -p DATABASE_NAME > mybb_dump.sql
- Copiez cette sauvegarde de base de données sur le serveur Discourse.
Vous pouvez utiliser
scpoursyncpour copier la base de données.
Importer la base de données de production dans Discourse
Sur le serveur Discourse, créez une base de données :
$ mysql -u root
Si votre utilisateur de base de données a un mot de passe, vous devez utiliser :
mysql -u root -ppuis saisir votre mot de passe.
mysql> CREATE DATABASE mybb;
Assurez-vous que la base de données a été créée avec succès en exécutant :
mysql> SHOW DATABASES;
Vous devriez voir quelque chose comme :
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| mybb |
| sys |
+--------------------+
La base de données mybb est pour l’instant vide. Notre prochaine étape consiste à importer la base de données de production dedans.
$ mysql -u root mybb < mybb_dump.sql
Plus tard, nous aurons besoin du préfixe de table. Donc, pendant que nous y sommes, récupérons-le.
$ mysql -u root
mysql> USE mybb;
mysql> SHOW TABLES;
Vous verrez quelque chose comme ceci :
+--------------------------+
| Tables_in_mybb |
+--------------------------+
| mybb_adminlog |
| mybb_adminoptions |
| mybb_adminsessions |
| mybb_adminviews |
| mybb_announcements |
| mybb_attachments |
| mybb_attachtypes |
| ...Le reste des tables...|
+--------------------------+
Notre préfixe de table est mybb_ comme le montre la sortie.
Exécuter le script d’importation MyBB
- Installons d’abord les dépendances de l’importateur. Depuis le serveur Discourse :
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
Ensuite, vous devez configurer le script pour qu’il fonctionne correctement. Copiez et collez le suivant dans votre terminal (modifiez les valeurs si nécessaire) :
export DB_HOST="localhost"
export DB_NAME="mybb"
export DB_PW=""
export DB_USER="root"
export TABLE_PREFIX="mybb_"
Vous avez une autre option pour configurer le script. Ouvrez script/import_scripts/mybb.rb dans n’importe quel éditeur de votre choix et modifiez les valeurs entre guillemets doubles pour qu’elles correspondent à vos besoins :
DB_HOST ||= ENV['DB_HOST'] || "localhost"
DB_NAME ||= ENV['DB_NAME'] || "mybb"
DB_PW ||= ENV['DB_PW'] || ""
DB_USER ||= ENV['DB_USER'] || "root"
TABLE_PREFIX ||= ENV['TABLE_PREFIX'] || "mybb_"
Exécutez l’importateur avec une instance Discourse propre :
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/mybb.rb
L’importateur se connectera au serveur MySQL et migrera votre base de données MyBB vers la base de données Discourse.
Une fois l’importation terminée, démarrez l’instance Discourse en exécutant :
$ bundle exec rails server
Ensuite, démarrez Sidekiq (processeur de tâches en arrière-plan) pour traiter les données migrées :
$ bundle exec sidekiq
Vous pouvez surveiller la progression de Sidekiq à l’adresse
http://localhost:3000/sidekiq/queues.
Configurez votre serveur de production Discourse en suivant ce tutoriel.
Effectuez une sauvegarde de la plateforme Discourse (serveur Discourse local) et téléchargez-la sur votre serveur de production Discourse en suivant ce tutoriel.
![]()
Si vous avez des questions sur le processus, je suis heureux de vous aider.
Bonne migration ![]()


