J’ai créé un script de migration ici pour importer une base de données FluxBB dans Discourse. Je vais maintenant expliquer comment procéder à l’importation étape par étape dans un tutoriel.
J’ai testé ce script de migration avec FluxBB v1.5.10 (qui est la version actuelle).
Quelles données peuvent être importées ?
- Utilisateurs (y compris les bios et signatures)
- Groupes
- Catégories
Les permissions ne seront pas importées et toutes les catégories seront publiques. Les permissions appropriées doivent être définies manuellement après l’importation. - Sujets (y compris le statut épinglé/fixé)
- Messages
- Utilisateurs suspendus
Avant de commencer la migration, configurez un environnement de développement sur votre machine (ou dans une machine virtuelle). Consultez le guide d’installation pour le développement sur OS X ou Ubuntu.
Discourse nécessite Ruby 3.4+. Pour vérifier votre version de Ruby, exécutez la commande suivante :
ruby -v
MySQL
Nous avons maintenant besoin du gem mysql2 pour Ruby afin de nous connecter à notre ancienne base de données FluxBB. Exécutez les commandes ci-dessous pour installer la dépendance libmysqlclient-dev et le gem mysql2.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libmysqlclient-dev
gem install mysql2
(optionnel) Importation d’un dump MySQL dans localhost
Pour installer le client MySQL et importer un fichier de dump MySQL (.sql) sur votre machine de développement, suivez les instructions ci-dessous :
sudo apt-get install mysql-server mysql-client
Créez un utilisateur MySQL, des privilèges et une table :
mysql -u root -p mysql
mysql> CREATE USER 'fluxbb'@'localhost' IDENTIFIED BY 'fluxbb';
Query OK, 0 rows affected (0.00 sec)
.
mysql> CREATE DATABASE fluxbb;
Query OK, 1 row affected (0.01 sec)
.
mysql> GRANT ALL PRIVILEGES ON fluxbb.* TO 'fluxbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
.
mysql> exit
Importez votre fichier de dump de base de données FluxBB :
mysql -u fluxbb -p fluxbb < myfluxbb.sql
BBCode vers Markdown
Le script d’importation gère automatiquement la conversion du BBCode vers Markdown. Aucun gem supplémentaire n’est nécessaire pour cela.
Après avoir installé mysql2, accédez au chemin d’installation de Discourse et ouvrez Gemfile pour le modifier.
cd ~/discourse
sudo nano Gemfile
Ajoutez maintenant la ligne suivante à la fin du fichier pour ajouter le gem mysql2 à Discourse.
gem 'mysql2'
Avant d’exécuter le script d’importation, collez ces lignes une par une dans votre terminal (utilisez les touches fléchées pour modifier les valeurs).
export FLUXBB_HOST="localhost"
export FLUXBB_DB="fluxbb"
export FLUXBB_USER="root"
export FLUXBB_PW=""
export FLUXBB_PREFIX=""
Il est maintenant temps d’exécuter le script d’importation. Lancez la commande ci-dessous pour démarrer la migration.
RAILS_ENV=production bundle exec ruby script/import_scripts/fluxbb.rb
Attendez que l’importation soit terminée. Vous pouvez le redémarrer si le processus ralentit considérablement.
Une fois tout terminé, félicitations ! Votre base de données a été migrée avec succès de FluxBB vers Discourse ![]()
Démarrez votre instance Discourse :
bundle exec rails server
Démarrez Sidekiq et laissez-le faire son travail :
bundle exec sidekiq -q critical,4 -q default,2 -q low
Selon la taille de votre forum, cela peut prendre beaucoup de temps. Vous pouvez surveiller la progression à l’adresse http://localhost:3000/sidekiq.
Faites maintenant une sauvegarde depuis la page d’administration /admin/backups et importez-la sur votre site Discourse en production.