Ein phpBB3-Forum zu Discourse migrieren

Ich habe sie ohne Unterschied eingefügt.

Ich bin mir nicht sicher, ob dies Fehler beim Einfügen sind oder ob es so in Ihrer YAML-Datei steht, aber diese würden Probleme verursachen. (Zeilenumbrüche am Ende einiger Kommentare, die dazu führen, dass eine zweite, nicht auskommentierte Zeile existiert)

Ihre Listenelemente sind nicht richtig eingerückt.

Das obige sollte sein

  new_categories: 
    - forum_id: general
      name: General

Ich empfehle die Verwendung von https://www.yamllint.com/, um Ihre Konfigurationsdatei zu validieren.

3 „Gefällt mir“

Vielen Dank für all Ihre Antworten. Ich habe schnell festgestellt, dass die Bearbeitung von settings.yml außerhalb des Import-Containers keine Auswirkungen auf das hatte, was lief. Ich habe auch das Problem mit dem Leerzeichen in der YML-Datei erkannt und meine Einstellungsdatei korrigiert. Jedenfalls verlief der Import des phpBB-Forums gut, außer…

Mein Benutzername bei phpBB war derselbe wie mein Admin-Konto bei Discourse. Ich kann mich nicht anmelden, und es gibt eine Meldung, dass:

Alle ausgehenden E-Mails wurden global von einem Administrator deaktiviert. Es werden keine E-Mail-Benachrichtigungen jeglicher Art gesendet.

Infolgedessen kann ich keine E-Mail zum Zurücksetzen des Passworts senden lassen. Ist das eine Datenbankeinstellung? Und wenn ja, kann ich dieses Feld mit den begrenzten Ressourcen des Containers aktualisieren? Andere Ideen?

Beachten Sie, dass ich das MigratePassword-Plugin installiert habe, aber das scheint nicht zu funktionieren (vielleicht weil mein Passwort weniger als 15 Zeichen lang war)

Sie können E-Mails für Admin-Benutzer über die Rails-Konsole aktivieren:

./launcher enter import
rails c

> SiteSetting.disable_emails = "non-staff"

Sie können Ihr Passwort auch direkt aus dem Container zurücksetzen, ohne E-Mails verwenden zu müssen, indem Sie Folgendes ausführen:

./launcher enter import
rake admin:create
3 „Gefällt mir“

Ich kann ein paar Änderungen an dieser Dokumentation (und dem Code) vorschlagen:

  • Dies ist nicht mehr erforderlich, da die Einstellung disable_edit_notifications nicht mehr existiert. disable system edit notifications erledigt die genannte Aufgabe und ist standardmäßig aktiviert.
  • Die beiden SSL-Zeilen sind in app.yml nicht mehr standardmäßig auskommentiert. Wenn Sie diese beiden # entfernen, ist der Auszug genauer an dem, wie er aussehen sollte.
  • Diese Vorlage sollte aktualisiert werden, damit Benutzer diesen Fehler beim Importieren nicht erleben.

  • Auch dies (es sei denn, ich habe irgendwo einen Fehler gemacht, es ist auch etwas, das behoben werden sollte):
    Beim Ausführen von IMPORT=1 bundle install wurde Folgendes zurückgegeben:

[!] Es gab einen Fehler beim Parsen von `Gemfile`: Sie können nicht dasselbe Gem zweimal mit unterschiedlichen Versionsanforderungen angeben.
Sie haben angegeben: sqlite3 (~> 1.3, >= 1.3.13) und sqlite3 (>= 0). Bundler kann nicht fortfahren.

# aus /home/root/discourse/Gemfile:249
# -------------------------------------------
# group :generic_import, optional: true do
#    gem "sqlite3"
#    gem "redcarpet"
# -------------------------------------------

Tatsächlich ist sqlite3 bereits einige Zeilen darüber angegeben:

# HINWEIS: im Importmodus kann die Version von sqlite eine große Rolle spielen, daher halten wir sie auf einer bestimmten Version
gem "sqlite3", "~> 1.3", ">= 1.3.13"
gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
gem "reverse_markdown"
gem "tiny_tds"
gem "csv"
end

group :generic_import, optional: true do
  gem "sqlite3"
  gem "redcarpet"
end

Ich habe für meinen Import eine Entwicklungsinstallation verwendet, falls das wichtig ist.

5 „Gefällt mir“

Diese Information sollte in der Anleitung erwähnt oder die Vorlage sollte aktualisiert werden. Das hat mich einige Stunden gekostet.

Was muss darin stehen?

Das Löschen dieser Zeile ermöglichte den erfolgreichen Aufbau des Containers.

1 „Gefällt mir“

Haben Sie diese Zeile also entfernt?

1 „Gefällt mir“

Ja, das war die Lösung.

1 „Gefällt mir“
4 „Gefällt mir“

„Hallo, ich habe mein phpBB-Forum erfolgreich nach Discourse migriert, alles lief reibungslos und das Forum läuft hervorragend. Jetzt habe ich festgestellt, dass ich beim FTP-Download der phpBB-Daten den Binärmodus nicht aktiviert habe, was bedeutet, dass alle Bilder beschädigt sind. Ich habe das Skript erneut ausgeführt, aber die Bilder werden nicht überschrieben. Welches Skript, vorzugsweise mit Pfad, muss ich ändern, damit die beschädigten Bilder und Anhänge überschrieben werden?“

Bei Ihrem zweiten Versuch überspringt Discourse die Uploads, da sie bereits in der uploads-Tabelle vorhanden sind. Discourse überschreibt vorhandene Uploads nur, wenn dies ausdrücklich angewiesen wird.

Sie können versuchen, den folgenden Code-Schnipsel in attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) einzufügen, bevor Sie @uploader.create_upload aufrufen. Dies stellt sicher, dass jeder vorhandene Upload mit demselben Dateinamen zuerst gelöscht wird, wodurch Discourse gezwungen wird, ihn erneut hochzuladen.

existing_upload = Upload.find_by(original_filename: filename)
if existing_upload
  existing_upload.destroy
  puts "Vorhandener Upload gelöscht: #{filename}"
end

upload = @uploader.create_upload(user_id, path, filename)
4 „Gefällt mir“

„Vielen Dank für Ihre Antwort. Leider hatte die Änderung keine Auswirkung. Das Skript läuft in nur einer Minute durch, aber die Anhänge werden nicht überschrieben …“

1 „Gefällt mir“

Sie müssen wahrscheinlich die Datenbank löschen und sie erneut ausführen.

1 „Gefällt mir“

Wie mache ich das?

Schritt 1: Stellen Sie über SSH eine Verbindung zum Server her:

ssh benutzername@server-adresse

Schritt 2: Greifen Sie auf den Anwendungscontainer zu:

./launcher enter import

Tipp: Führen Sie docker ps aus, um den Containernamen zu finden. Standardmäßig heißt er normalerweise app.

Schritt 3: Setzen Sie die Datenbank zurück:

RAILS_ENV=production rake db:reset
3 „Gefällt mir“

Hallo Canapin,

Ich habe diesen Teil im Leitfaden aktualisiert.

Das kommt darauf an. Es ist immer noch auskommentiert, wenn der Container für localhost eingerichtet wird. Der Leitfaden geht davon aus, dass ein separater Container für Importe verwendet wird, der nicht über das Internet erreichbar ist, sodass der Erwerb von Zertifikaten in diesem Fall nicht notwendig ist.

Ein PR dafür wurde jetzt in den Core übernommen.

Wir arbeiten an einer Lösung dafür, aber ich habe den Leitfaden aktualisiert und eine FAQ hinzugefügt, wie dieses Problem behoben werden kann.

4 „Gefällt mir“

Wenn Discourse in einem Unterverzeichnis läuft, wie z. B. domain.org/forum, werden die Permalinks nicht angewendet, da sie wie viewtopic.php?p=XXXX lauten, aber forum/viewtopic.php?p=XXXX sein müssten, um zu funktionieren.

Es ist schon Jahre her, aber ich bin über die nie funktionierenden Permalinks gestolpert, die in unserem Fall immer noch konfiguriert sind. Gibt es eine GUI/CLI-Möglichkeit, allen Permalinks ein URL-Pfad-Element voranzustellen, oder kann jemand eine PostgreSQL-Abfrage hinzufügen, um dies zu tun? Könnte auch anderen helfen, wenn diese Information im ersten Beitrag hinzugefügt wird.