In diesem Tutorial lernen Sie, wie Sie ein MyBB-Forum mit dem offiziellen MyBB-Importerskript auf die
-Plattform migrieren.
Was kann migriert werden
- Kategorien
- Root-Kategorie =\u003e Root-Kategorie
- Unterkategorie =\u003e Unterkategorie
- Root-Forum =\u003e Unterkategorie
- Unterforum =\u003e Unterkategorie
- Threads \u0026 Antworten =\u003e Themen \u0026 Beiträge
- Benutzer
- Benutzername
- Berechtigungsstatus
- Beitrittsstatus
- Weiterleitungen
Unser Plan ist sehr einfach:
- Einrichten der lokalen DEV-Umgebung.
- Exportieren der Produktionsdatenbank.
- Importieren der Produktionsdatenbank in Discourse.
- Ausführen des MyBB-Importerskripts.
Lassen Sie uns beginnen ![]()
Einrichten der lokalen DEV-Umgebung
Zunächst müssen Sie eine der folgenden Anleitungen befolgen, um die Discourse-Plattform selbst zu installieren. Konsultieren Sie diese Anleitung, falls Sie Probleme haben.
Installieren Sie den MySQL-Datenbankserver:
MacOS:
\n$ brew install mysql@5.7\n$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' \u003e\u003e ~/.bash_profile\n$ source ~/.bash_profile\n
Überprüfen Sie den Dienststatus:
\n$ brew services list\n
Sie sollten etwas Ähnliches sehen:
\nmysql@5.7 started\n
Andernfalls führen Sie Folgendes aus und versuchen es erneut:
\n$ brew services start mysql@5.7\n
Ubuntu 18.04:
\n$ sudo apt update\n$ sudo apt install mysql-server -y\n
Nach Abschluss der MySQL-Installation überprüfen Sie deren Status:
\n$ systemctl status mysql.service\n
Falls er nicht läuft, führen Sie Folgendes aus:
\n$ sudo systemctl start mysql\n
Für Windows können Sie dem offiziellen Installationsleitfaden folgen.
Wir nennen diese Umgebung: Discourse-Server.
Exportieren der Produktionsdatenbank
Exportieren/Sichern Sie die Produktionsdatenbank (vom MyBB-Produktionsserver) durch Ausführen von:
\n$ mysqldump -u BENUTZERNAME -p DATENBANKNAME \u003e mybb_dump.sql\n
- Kopieren Sie diesen Datenbank-Dump auf den Discourse-Server.
\u003e
Sie können scp oder rsync zum Kopieren der Datenbank verwenden.
Importieren der Produktionsdatenbank in Discourse
Erstellen Sie auf dem Discourse-Server eine Datenbank:
\n$ mysql -u root\n
\u003e
Wenn Ihr DB-Benutzer ein Passwort hat, sollten Sie Folgendes verwenden: mysql -u root -p und dann Ihr Passwort eingeben.
\nmysql\u003e CREATE DATABASE mybb;\n
Stellen Sie sicher, dass die Datenbank erfolgreich erstellt wurde, indem Sie Folgendes ausführen:
\nmysql\u003e SHOW DATABASES;\n
Sie sollten etwas Ähnliches sehen:
\n+--------------------+\n| Database |\n+--------------------+\n| information_schema |\n| mysql |\n| performance_schema |\n| mybb |\n| sys |\n+--------------------+\n
Die mybb-DB ist bisher leer. Unser nächster Schritt ist der Import der Produktionsdatenbank darin.
\n$ mysql -u root mybb \u003c mybb_dump.sql\n
Später benötigen wir die Tabellenpräfixe. Lassen Sie uns dies also jetzt holen.
\n$ mysql -u root\nmysql\u003e USE mybb;\nmysql\u003e SHOW TABLES;\n
Sie werden etwas Ähnliches sehen:
\n+--------------------------+\n| Tables_in_mybb |\n+--------------------------+\n| mybb_adminlog |\n| mybb_adminoptions |\n| mybb_adminsessions |\n| mybb_adminviews |\n| mybb_announcements |\n| mybb_attachments |\n| mybb_attachtypes |\n| ...Der Rest der Tabellen....|\n+--------------------------+\n
Unser Tabellenpräfix ist mybb_, wie die Ausgabe zeigt.
Ausführen des MyBB-Importerskripts
- Installieren Sie zunächst die Importer-Abhängigkeiten. Vom Discourse-Server aus:
\n$ cd ~/discourse\n$ echo "gem 'mysql2', require: false" \u003e\u003e Gemfile\n$ bundle install\n
Als Nächstes sollten Sie das Skript konfigurieren, damit es ordnungsgemäß ausgeführt wird. Kopieren Sie Folgendes in Ihre Shell (ändern Sie die Werte bei Bedarf):
\nexport DB_HOST="localhost"\nexport DB_NAME="mybb"\nexport DB_PW=""\nexport DB_USER="root"\nexport TABLE_PREFIX="mybb_"\n
Sie haben eine weitere Option, um das Skript zu konfigurieren. Öffnen Sie script/import_scripts/mybb.rb in einem beliebigen Editor Ihrer Wahl und ändern Sie die Werte innerhalb der doppelten Anführungszeichen, um sie Ihren Bedürfnissen anzupassen:
ruby\n DB_HOST ||= ENV['DB_HOST'] || "localhost"\n DB_NAME ||= ENV['DB_NAME'] || "mybb"\n DB_PW ||= ENV['DB_PW'] || ""\n DB_USER ||= ENV['DB_USER'] || "root"\n TABLE_PREFIX ||= ENV['TABLE_PREFIX'] || "mybb_"\n
Führen Sie den Importer mit einer sauberen Discourse-Instanz aus:
\n$ bundle exec rails db:drop\n$ bundle exec rails db:create\n$ bundle exec rails db:migrate\n$ bundle exec ruby script/import_scripts/mybb.rb\n
Der Importer verbindet sich mit dem MySQL-Server und migriert Ihre MyBB-Datenbank in die Discourse-Datenbank.
Nachdem der Importer fertig ist, starten Sie die Discourse-Instanz durch Ausführen von:
\n$ bundle exec rails server\n
Starten Sie als Nächstes Sidekiq (Hintergrund-Job-Verarbeiter), um die migrierten Daten zu verarbeiten:
\n$ bundle exec sidekiq\n
\u003e
Sie können den Sidekiq-Fortschritt unter http://localhost:3000/sidekiq/queues überwachen.
Richten Sie Ihren Discourse-Produktionsserver ein, indem Sie diesem Tutorial folgen.
Erstellen Sie ein Backup für die Discourse-Plattform (lokaler Discourse-Server) und laden Sie es auf Ihren Discourse-Produktionsserver hoch, indem Sie diesem Tutorial folgen.
![]()
Wenn Sie Fragen zum Prozess haben, helfe ich gerne weiter.
Viel Erfolg bei der Migration ![]()
