Ich habe ein Migrationsskript erstellt, um eine FluxBB-Datenbank in Discourse zu importieren. Im Folgenden erkläre ich den Importprozess in einer schrittweisen Anleitung.
Ich habe dieses Migrationsskript mit FluxBB v1.5.10 getestet (aktuellste Version).
Welche Daten können importiert werden?
- Benutzer (einschließlich Biografien und Signaturen)
- Gruppen
- Kategorien
Berechtigungen werden nicht importiert; alle Kategorien sind öffentlich. Die richtigen Berechtigungen müssen nach dem Import manuell gesetzt werden. - Themen (einschließlich Anheften/Pinning-Status)
- Beiträge
- suspendierte Benutzer
Bevor Sie mit der Migration beginnen, richten Sie eine Entwicklungsumgebung auf Ihrem Rechner (oder in einer virtuellen Maschine) ein. Beachten Sie dazu die Installationsanleitungen für die Entwicklung unter macOS oder Ubuntu.
Discourse erfordert Ruby 3.4+. Um Ihre Ruby-Version zu überprüfen, geben Sie den folgenden Befehl ein:
ruby -v
MySQL
Nun benötigen wir das mysql2-Gem für Ruby, um eine Verbindung zu unserer alten FluxBB-Datenbank herzustellen. Führen Sie die folgenden Befehle aus, um die Abhängigkeit libmysqlclient-dev und das mysql2-Gem zu installieren.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libmysqlclient-dev
gem install mysql2
(optional) Importieren eines MySQL-Dumps in localhost
Um den MySQL-Client zu installieren und eine MySQL-Dump-Datei (.sql) auf Ihren Entwicklungsrechner zu importieren, befolgen Sie die folgenden Anweisungen:
sudo apt-get install mysql-server mysql-client
Erstellen Sie einen MySQL-Benutzer, erteilen Sie Berechtigungen und erstellen Sie eine Tabelle:
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
Importieren Sie Ihre FluxBB-Datenbank-Dump-Datei:
mysql -u fluxbb -p fluxbb < myfluxbb.sql
BBCode zu Markdown
Das Importskript übernimmt die Konvertierung von BBCode zu Markdown automatisch. Dafür sind keine zusätzlichen Gems erforderlich.
Nach der Installation von mysql2 wechseln Sie in das Verzeichnis Ihrer Discourse-Installation und öffnen die Gemfile-Datei zur Bearbeitung:
cd ~/discourse
sudo nano Gemfile
Fügen Sie nun am Ende der Datei die folgende Zeile ein, um das mysql2-Gem zu Discourse hinzuzufügen:
gem 'mysql2'
Bevor Sie das Importskript ausführen, fügen Sie diese Zeilen nacheinander in Ihre Shell ein (verwenden Sie die Pfeiltasten, um die Werte zu bearbeiten):
export FLUXBB_HOST="localhost"
export FLUXBB_DB="fluxbb"
export FLUXBB_USER="root"
export FLUXBB_PW=""
export FLUXBB_PREFIX=""
Nun ist es soweit, das Importskript auszuführen. Starten Sie die Migration mit dem folgenden Befehl:
RAILS_ENV=production bundle exec ruby script/import_scripts/fluxbb.rb
Warten Sie, bis der Import abgeschlossen ist. Falls der Prozess sehr langsam wird, können Sie ihn neu starten.
Nach Abschluss: Herzlichen Glückwunsch! Ihre Datenbank wurde erfolgreich von FluxBB zu Discourse migriert ![]()
Starten Sie Ihre Discourse-Instanz:
bundle exec rails server
Starten Sie Sidekiq und lassen Sie es seine Arbeit erledigen:
bundle exec sidekiq -q critical,4 -q default,2 -q low
Je nach Größe Ihres Forums kann dies einige Zeit in Anspruch nehmen. Sie können den Fortschritt unter http://localhost:3000/sidekiq überwachen.
Erstellen Sie nun über die Admin-Seite unter /admin/backups ein Backup und importieren Sie dieses auf Ihrer Live-Discourse-Website.