In diesem Tutorial lernen Sie, wie Sie ein PunBB-Forum mit dem offiziellen Importer-Skript auf die
Plattform migrieren. Lassen Sie uns beginnen ![]()
Was migriert werden kann
-
Themen & Antworten => Themen & Beiträge
-
Kategorien & Foren
- Stammkategorie => Stammkategorie
- Unterkategorie => Unterkategorie
- Stammforum => Unterkategorie
- Unterforum => Unterkategorie
-
Benutzer
- Benutzername
- Name
- 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 ![]()
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.
Sie können
scpoderrsyncverwenden, 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
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 ![]()