I created a migration script to import FluxBB database into Discourse. Now I’m going to explain how to do the import process in a step-by-step tutorial.
I tested this migration script with FluxBB v1.5.10 (which is current version now)
What data can be imported?
- Suspended users
Ubuntu 16.04 LTS amd64 xenial image. I recommending using Ruby version 2.3.0 or above (at least 2.0.0). Because I had some compatability issues when installing
mysql2 with older versions of Ruby.
To check Ruby version enter the command below
Now we need
mysql2 gem for ruby to connect with our old FluxBB database. Run the below commands to install
libmysqlclient-dev dependency &
sudo apt-get update sudo apt-get upgrade sudo apt-get install libmysqlclient-dev gem install mysql2
(optional) Importing MySQL dump into localhost
To install MySQL client and import mysql dump file (.sql) to your development machine follow the instructions below
sudo apt-get install mysql-server-5.5 mysql-client-5.5
Create MySQL user, grants and 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
Import your FluxBB database dump file
mysql -u fluxbb -p fluxbb < myfluxbb.sql
BBcode to Markdown
Discourse uses Markdown while FluxBB use BBCode. So we have to convert bbcodes to markdown in all posts. For that we are going to use the nlalonde/ruby-bbcode-to-md gem. Follow the steps below to install the
cd git clone https://github.com/nlalonde/ruby-bbcode-to-md.git cd ruby-bbcode-to-md gem build ruby-bbcode-to-md.gemspec gem install ruby-bbcode-to-md-*.gem
After the successful installation of both
ruby-bbcode-to-md go to your Discourse installation path and open
Gemfile to edit.
cd ~/discourse sudo nano Gemfile
Now insert the lines below at the end of the file to add
ruby-bbcode-to-md gems to Discourse.
gem 'mysql2' gem 'ruby-bbcode-to-md'
Before running the import script, paste these lines one by one into your shell. (use arrow keys to edit the values)
export FLUXBB_HOST="localhost" export FLUXBB_DB="fluxbb" export FLUXBB_USER="root" export FLUXBB_PW="" export FLUXBB_PREFIX=""
Now it’s time to run the import script. Run the below command to start migration.
bundle exec ruby script/import_scripts/fluxbb.rb bbcode-to-md
Wait until the import is done. You can restart it if it slows down to a crawl.
After all congratulations! Your database successfully migrated from FluxBB to Discourse
Start your Discourse instance:
bundle exec rails server
Start Sidekiq and let it do its work:
bundle exec sidekiq -q critical,4 -q default,2 -q low
Depending on your forum size this can take a long time. You can monitor the progress at
Now take a backup from admin page
/admin/backups and import it in your live Discourse website.