Vielen Dank für die Skripte!
Ich finde jedoch, dass das Handbuch ziemlich roh und unklar ist. Ich musste mich z. B. am Xenforo Migrationsleitfaden orientieren, um tatsächlich zu verstehen, was Sie hier vorschlagen. Lassen Sie mich einige fehlende Schritte hinzufügen:
- Discourse am Laufen haben
- Erstellen Sie einen mysqldump vom ursprünglichen Phorum - alles klar, alles gut.
- Kopieren Sie den Datenbank-Dump in den Discourse-Ordner
docker cp/path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz(unter der Annahme, dassappder Standardcontainername ist)
Und hier die fehlenden Teile: - Springen Sie tatsächlich in den Discourse Docker Container und installieren Sie MySQL dort:
docker exec -it app bash apt-get update && apt-get upgrade
# pv nur zur Bequemlichkeit, um den Fortschritt anzuzeigen, lsb-release wird von etwas benötigt apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev service mariadb start
Beachten Sie, dass die MySQL-Installation etwas kniffliger ist, aber Mariadb sollte genauso gut funktionieren.
Erstellen Sie dann eine Datenbank: mysql → CREATE database phorum.
Füllen Sie sie dann aus dem Backup: pv phorum_db.sql.gz | gunzip | mysql phorum (kein gunzip erforderlich, wenn Ihr Dump reines SQL ist)
Fügen Sie MySql-Unterstützung zu Ruby hinzu:
cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment
Ändern Sie die Daten im Migrationsskript (Datenbankanmeldeinformationen, Präfix, Permalinks):
nano /var/www/discourse/script/import_scripts/phorum.rb
Und dann zurück zum ursprünglichen Leitfaden, alles gut dort:
Führen Sie den Importer mit einer sauberen Discourse-Instanz aus:
git config --global --add safe.directory /var/www/discourse bundle exec ruby script/import_scripts/phorum.rb
Wenn Ihre Discourse-Datenbank nicht wirklich sauber ist, bereinigen Sie sie besser vorher mit bundle exec rake db:drop db:create db:migrate.
Wenn es mit “PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)” fehlschlägt:
- Wenn Sie den Fehler
'Peer authentication failed for user "discourse"'erhalten:- Bearbeiten Sie die Datei
/etc/postgresql/13/main/pg_hba.conf- Ändern Sie alle ‘peer’ in ‘trust’ und speichern Sie die Datei
- Laden Sie den Postgres-Server neu:
/etc/init.d/postgresql reload(oder vielleichtpsql -U postgres -c "SELECT pg_reload_conf();", aber das schlug bei mir manchmal fehl)
Zuerst werden die Benutzermigrationen ausgeführt, die relativ langsam sein können (~1,2k Benutzer/Minute laut Skriptausgabe. Ich hatte 100k Benutzer, also…). Dann werden Kategorien erstellt und mit der Migration von Nachrichten und Themen begonnen (gleiche Geschwindigkeit, ~1,2k/Minute), aber zu diesem Zeitpunkt können Sie bereits auf die Website zugreifen und sehen, wie sie aussieht.
Scheint viel reibungsloser zu laufen, als ich es von einer so alten Engine wie Phorum erwartet hätte. Es scheint keine Migration von privaten Nachrichten (PM) zu geben, aber das sollte für mich zumindest kein Hindernis sein.
Nochmals vielen Dank für das Skript und die Bemühungen!