Migration eines vBulletin 4 Forums zu Discourse

I know this is a bit of an old topic, but I’ve just completed a comparably sized vb4 migration and am missing a LOT of image attachments, somewhere on the order of 75% of them I’d wager. They are not tombstoned, and all the threads have been rebaked.

Has anyone else dealt with this? How should I go about recovering those images?

Did you see errors when you did the import?

1 „Gefällt mir“

Yes, quite a few ‘Attachment file doesn’t exist’ errors with some ‘Couldn’t find attachment record for post.id=xxx, import_id=xxx’ sprinkled in.

The thing that has me scratching my head is that these are posts that I know have intact attachments, and that those attachments are in the ATTACHMENT_DIR global directory. The threads with missing images are missing ALL the associated images, which seems… not random.

I’m at a loss to find any common factor among the threads/posts with lost images either.

Those messages were your clue that something was amiss. All you can do is diagnose the problem an run the import again.

Every import is a snowflake. I’ve don’t dozens of them. It’s rare that one just works. If you’d like help: Redirecting…

2 „Gefällt mir“

Ich wollte Discourse einmal ausprobieren, indem ich unsere umfangreiche VBulletin-Datenbank konvertiere, und habe daher dieses Skript getestet.

Es hat Benutzer und Gruppen importiert, ist jedoch jetzt ein paar Mal bei Unterkategorien gescheitert.

   Importieren der Hauptkategorien...
        7 / 7 (100,0 %)  [902 Elemente/Min]   n]
Importieren der Unterkategorien...
Traceback (most recent call last):
        5: from script/import_scripts/vbulletin.rb:942:in `<main>'
        4: from /home/peterb/discourse/script/import_scripts/base.rb:47:in `perform'
        3: from script/import_scripts/vbulletin.rb:84:in `execute'
        2: from script/import_scripts/vbulletin.rb:287:in `import_categories'
        1: from script/import_scripts/vbulletin.rb:287:in `each'
script/import_scripts/vbulletin.rb:289:in `block in import_categories': undefined method `[]' for nil:NilClass (NoMethodError)

Ich habe verschiedene Dinge wie UTF8-Kodierung, Serverressourcen usw. überprüft – aber ich weiß im Moment nicht mehr, was ich sonst noch prüfen könnte.
Irgendeine Idee?
Danke.

Ich führe gerade einen Import von 8 Millionen Beiträgen aus vBulletin durch. Ich habe Unterstützung für Likes (anscheinend durch ein Plugin oder eine Modifikation) und Umfragen hinzugefügt.

Aus der Fehlermeldung lässt sich nicht ganz erkennen, was das Problem ist. Meine Vermutung ist, dass irgendwie eine parentid nicht gefunden wird.

Ich denke, du musst auf irgendeine Weise Folgendes beheben:

    parent_category_id: category_id_from_imported_category_id(category["parentid"])

so dass es nicht fehlschlägt, wenn category['parentid'] nil ist.

1 „Gefällt mir“

Danke. Ich habe mir das noch einmal angesehen, und es scheint, dass die Admins „Abschnitte

3 „Gefällt mir“

Ja. Klingt, als hättest du es herausgefunden. Dass so etwas schiefgeht, ist eher die Regel als die Ausnahme. Dann musst du entscheiden, ob du es in der Datenbank reparierst oder den Code anpasst, um mit deiner kaputten Datenbank umzugehen.

3 „Gefällt mir“

Bei jeder Datenmigration ist es üblich, dass kein Skript alle Eventualitäten abdeckt. Es hilft auch nicht, dass die einzige Zeit, die ich habe, um daran zu arbeiten, spät abends ist (es ist ein kostenloses Angebot für meinen Auto-Club). Die vBulletin-Seite ist ziemlich stark angepasst, also werde ich sehen, welche weiteren Überraschungen noch auf mich zukommen.

4 „Gefällt mir“

Ich verstehe, dass es ein Skript gibt, das Importe aus vBulletin 4 verarbeiten kann, aber ich sehe nichts bezüglich der Umleitung aller URLs auf das neue Discourse-URL-Format.

Wie geht ihr damit um? Was passiert mit allen externen Links, die eure Foren haben?

Hier ist es:

3 „Gefällt mir“

Danke @RGJ, aber kannst du erklären, wie das in der Praxis funktioniert? Was genau macht dieses Skript? Erstellt es gewissermaßen Alias-URLs (in Discourse) für die aktuellen/korrekten importierten Discourse-URLs?

Wie würdest du empfehlen, ein altes Vbulletin-Domain (www.example1.com) auf eine neue Discourse-Domain (www.exmple2.com) zu migrieren?

Ich denke, idealerweise würde es sein, wenn die alte Forendomain den gesamten eingehenden Traffic/Links basierend auf einer Liste von 301-Umleitungen auf die neue Domain weiterleitet. Wie würdest du empfehlen, eine solche Liste mit 301-Umleitungen zu erstellen?

Du musst die Domäne nicht ändern, aber wenn du es tust, gibt es einen zweistufigen Prozess.

  1. Leite ALLES von der alten Domäne auf die neue um.
  2. Discourse-Permalinks übersetzen die vBulletin-artigen URLs in die korrekten Discourse-Themen.

Wenn du die Domäne nicht änderst, sondern sie einfach auf das neue Discourse-Setup umleitest, dann hast du nur Schritt 2.

1 „Gefällt mir“

Wie sind die HTTP-Weiterleitungs-Header in Discourse, 301 oder 302?

Ich interessiere mich aus SEO-Sicht, ob ein Domainwechsel die Rankings beeinflusst.

301 Moved Permanently

Das Wort Permalink sagt eigentlich schon alles aus :slight_smile:

1 „Gefällt mir“

Sie können es selbst sehen, wenn Sie /admin/customize/permalinks aufrufen und eine Permalink erstellen, um zu sehen, wie es funktioniert.

Ich habe ein Problem damit, dass Anhänge nicht vollständig importiert werden – ähnlich wie bereits erwähnt, aber das Skript wirft keine Fehlermeldungen aus.
Die Datenbank ist klein (71 MB), und der gesamte Import ist in 0 Minuten 23 Sekunden abgeschlossen.


Der Großteil der Anhänge fehlt in den Beiträgen.
Ich habe die SQL-Abfragen direkt auf meiner vb4-Datenbank ausgeführt, wie sie im Skript stehen, und sie liefern die korrekten Daten zurück. Daher bin ich im Moment nicht sicher, wo das Problem liegt…

Sind die fehlenden Anhänge nicht direkt in den Beiträgen verlinkt? Ich glaube, das Skript zieht nur die Bilder, die in den Beiträgen erwähnt werden, nicht aber diejenigen, die lediglich an den Beitrag angehängt sind.

Ich habe ein Skript, das diese importiert, habe es aber noch nicht geschafft, einen PR einzureichen.

Ja, ich denke, du hast recht, @pfaffman, das ist tatsächlich der Fall.
Ich werde auf das Skript warten, sobald du es hochgeladen hast!

Wenn du ein Budget hast, lass es mich wissen. Ich plane, eine Version einzureichen, sobald ich diesen Import abgeschlossen habe. Allerdings muss ich eine beträchtliche Menge an Code entfernen, der nur für diesen Import gedacht ist – genau aus diesem Grund ist es vor einem Jahr nicht passiert…

1 „Gefällt mir“