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.
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
Ich kann ein paar Änderungen an dieser Dokumentation (und dem Code) vorschlagen:
- Dies ist nicht mehr erforderlich, da die Einstellung
disable_edit_notificationsnicht mehr existiert.disable system edit notificationserledigt die genannte Aufgabe und ist standardmäßig aktiviert.
- Die beiden SSL-Zeilen sind in
app.ymlnicht 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 vonIMPORT=1 bundle installwurde 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.
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.
Haben Sie diese Zeile also entfernt?
Ja, das war die Lösung.
„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)
„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 …“
Sie müssen wahrscheinlich die Datenbank löschen und sie erneut ausführen.
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
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.
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.