Ein PunBB-Forum nach Discourse migrieren

In diesem Tutorial lernen Sie, wie Sie ein PunBB-Forum mit dem offiziellen Importer-Skript auf die :discourse: Plattform migrieren. Lassen Sie uns beginnen :slight_smile:

Was migriert werden kann

  • Themen & Antworten => Themen & Beiträge

  • Kategorien & Foren

    • Stammkategorie => Stammkategorie
    • Unterkategorie => Unterkategorie
    • Stammforum => Unterkategorie
    • Unterforum => Unterkategorie
  • Benutzer

    • Benutzername
    • Name
    • E-Mail
    • Website
    • Berechtigungsstatus
    • Standort
    • Beitrittsdatum
    • Administrationsstatus
    • Bann-Status

Unser Plan ist sehr einfach, wir benötigen lediglich:

  • Einrichtung der lokalen DEV-UMGEBUNG.

  • Exportieren der Produktionsdatenbank.

  • Importieren der Produktionsdatenbank in Discourse.

  • Ausführen des PunBB-Importer-Skripts.

Lassen Sie uns beginnen :slightly_smiling_face:

Einrichtung der lokalen DEV-UMGEBUNG

Zunächst müssen Sie einer der folgenden Anleitungen folgen, um die Discourse-Plattform zu installieren. Konsultieren Sie diese Anleitung, falls Sie Probleme haben.

Installieren Sie den MySQL-Datenbankserver;

MacOS:


$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

Überprüfen Sie den Dienststatus mit:

$ brew services list

Sie sollten etwas Ähnliches sehen:

mysql@5.7 started

Andernfalls führen Sie Folgendes aus und überprüfen den Status erneut:

$ brew services start mysql@5.7

Ubuntu 18.04:

Führen Sie Folgendes aus, um den MySQL-Server zu installieren:

$ sudo apt update
$ sudo apt install mysql-server -y

Nach Abschluss der MySQL-Installation überprüfen Sie den Status:

$ systemctl status mysql.service

Wenn er nicht läuft, führen Sie Folgendes aus:

$ sudo systemctl start mysql

Für Windows können Sie dem Installationshandbuch folgen.

Jetzt ist unsere DEV-UMGEBUNG bereit. Wir nennen sie: Discourse-Server.

Exportieren der Produktionsdatenbank

Exportieren/Sichern Sie die Produktionsdatenbank (vom PunBB-Produktionsserver) durch Ausführen von:

$ mysqldump -u USER_NAME -p DATABASE_NAME > punbb.sql
  • Kopieren Sie diesen Datenbank-Dump auf den Discourse-Server.

:bulb: Sie können scp oder rsync verwenden, um die Datenbank zu kopieren.

Importieren der Produktionsdatenbank in Discourse

Erstellen Sie auf dem Discourse-Server eine neue leere Datenbank. Dazu müssen wir die MySQL-CLI verwenden:

$ mysql -u root

Wenn Ihr DB-Benutzer ein Passwort hat, führen Sie Folgendes aus und geben Sie Ihr Passwort ein:

mysql -u root -p
mysql> CREATE DATABASE punbb;

Stellen Sie sicher, dass die Datenbank erfolgreich erstellt wurde, indem Sie Folgendes ausführen:

mysql> SHOW DATABASES;

Sie sollten etwas Ähnliches sehen:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| punbb              |
+--------------------+

Unser nächster Schritt ist der Import der Produktionsdatenbank in diese neue leere Datenbank.

$ mysql -u root punbb < punbb.sql

Ausführen des PunBB-Importer-Skripts

Installieren wir zuerst die Abhängigkeiten des Importers. Vom Discourse-Server:

$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install

Als Nächstes müssen Sie das Skript so konfigurieren, dass es ordnungsgemäß ausgeführt wird. Öffnen Sie script/import_scripts/punbb.rb in einem beliebigen Editor Ihrer Wahl und ändern Sie es. Im Wesentlichen müssen Sie lediglich die MySQL-Datenbankinformationen angeben:

PUNBB_DB = "DATABASE_NAME"
.
.
.
@client = Mysql2::Client.new(
  host: "localhost",
  username: "MYSQL_USERNAME",
  password: "MYSQL_PASSWORD",
  database: PUNBB_DB
)

Führen Sie den Importer mit einer sauberen Discourse-Instanz aus:

$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/punbb.rb

Der Importer verbindet sich mit der MySQL-Datenbank und migriert Ihr PunBB-Forum zur Discourse-Datenbank.

Nachdem der Importer abgeschlossen ist, starten Sie den Discourse-Server mit:

$ bundle exec rails server

Starten Sie anschließend den Hintergrundprozess für die Verarbeitung der migrierten Daten:

$ bundle exec sidekiq

:bulb: Sie können den Fortschritt von Sidekiq unter dieser URL überwachen: http://localhost:3000/sidekiq/queues.

Bereiten Sie nun Ihren Discourse-Produktionsserver vor, indem Sie diesem Tutorial folgen.

Erstellen Sie ein Backup der lokalen Discourse-Server-Plattform und laden Sie es gemäß diesem Tutorial auf Ihren Discourse-Produktionsserver hoch.

Wenn Sie Fragen zum Prozess haben, helfe ich gerne weiter.

Viel Erfolg bei der Migration :grinning:

7 „Gefällt mir“