vBulletin 5 Datenbankmigration - Import-Skriptfehler

Nun, „schlechte Nachrichten“ für dich, Jammy.

Wir haben beschlossen, dass das Skript in einem so unfertigen Zustand ist, dass wir es von Grund auf neu schreiben, um unsere vb3-Installation direkt in Discourse zu migrieren. Wir verwenden auch C#, was es um mehrere Größenordnungen schneller macht.

Wenn es uns gelingt, das Skript „generisch“ genug zu machen, werden wir das GitHub für die Öffentlichkeit zugänglich machen, aber ich bezweifle, dass es überhaupt viel Interesse daran geben wird, alte Communities zu migrieren, die heute noch auf vb3 festsitzen.

2 „Gefällt mir“

Nur ein kurzes Update. Dank der Arbeit einer unglaublich engagierten kleinen Gruppe sind wir fast fertig.

Ab nächsten Montag werden wir einige Testläufe auf einer Staging-Maschine starten, aber die Ergebnisse sind vielversprechend.

Dies sind die Gesamtzahlen, die wir haben:

Größenmäßig ist die Datenbank im vbulletin3-Format etwa 8 GB groß.

Und die Tests, die von lokalen Maschinen aus durchgeführt werden und sich remote mit der Quell-DB verbinden, dauern etwa 6 Stunden.

Das Skript migriert alle Foren/Unterforen und übersetzt sie in Kategorien und Unterkategorien. Es werden Unterkategorien der 3. Ebene benötigt, da wir ein ziemlich altmodisches Forum haben und dort einige “Clan”-Foren gehostet werden, die wirklich SEHR verschachtelt sind.

Alles, was über die 3. Ebene hinausgeht, wird automatisch in ein Tag umgewandelt, wobei die hierarchische Struktur, die es in Bezug auf die Eltern/Kind-Unterforenbeziehung hatte, beibehalten wird (mithilfe von Tag-Gruppen).

Jedes Unterforum, das entweder benutzerdefinierte Berechtigungen hatte (z. B. schreibgeschützt), nur für Mods/Admins zugänglich war oder einfach nur passwortgeschützt verborgen war, wird als “nur für Mitarbeiter zugänglich” migriert. Am Ende werden es etwa ein Dutzend sein, und wir können die Mitarbeiter sie manuell für die richtigen Benutzergruppen wieder aktivieren lassen.

Benutzer, Benutzergruppen und private Nachrichten werden ebenfalls migriert. Private Nachrichten werden auf die “Discourse-Art” migriert, was bedeutet, dass anstelle von N Themen mit 1 Nachricht, wie man es bei einer einfachen 1:1-Migration der Datenbank sehen würde (wirklich eine alberne Datenbankstruktur), es die Thread-organisierte Art und Weise haben wird, die Discourse verwendet.

Das Skript erledigt auch bereits das “Kochen” (Vorbereiten), um den Prozess für alle Beiträge zu beschleunigen.

Die Migration von Themen und Beiträgen erfolgt über mehrere parallele Verbindungen und wird immer versuchen, so viele Verbindungen wie möglich zu nutzen, die die Quell-DB zulässt.

Wir werden sehen, wie viel Zeit es im Durchschnitt auf einer kleinen Maschine mit 2 vCores/4 GB RAM in Anspruch nimmt, aber es ist bereits um mehrere Größenordnungen schneller als das aktuelle (unvollendete) Bulk-Migrationsskript, das verfügbar ist.

Mehrere Teile könnten besser optimiert werden und VIEL davon ist wirklich speziell für unser Forum entwickelt (wir haben sogar eine Zuordnung in JSON, um viele der Forenstrukturen neu zu organisieren, damit sie weniger chaotisch sind), daher bezweifle ich, dass es ohne einige Anpassungen von jemand anderem verwendet werden könnte, aber wir werden intern diskutieren, ob wir das Quell-Repository nach Abschluss unserer Migration öffentlich zugänglich machen wollen.

1 „Gefällt mir“

Letzte Aktualisierung, schätze ich.

Wir haben endlich alles (Infrastruktur, Code, Benutzer, Mods usw.) abgestimmt und migriert. Es geschah gestern. Ich werde die Community nicht verlinken, da ich mich nicht erinnern kann, ob es erlaubt ist, und sie ist sowieso eine ziemlich bekannte Community in Italien.

Dies sind die Zahlen, die wir im Durchschnitt in 30 Tagen erzielen, Bots bereits gefiltert.

Es gab natürlich ziemlichen Druck auf das Team von Freiwilligen, die sich darum gekümmert haben, und jetzt ist es noch nicht fertig, da wir noch das benutzerdefinierte Theme und einige Hintergrundeinstellungen von Discourse ausbügeln (ich werde wohl viele Themen eröffnen müssen, um Hilfe/Klärung/Anleitungen zu bitten).

Unser Skript hat alles migriert, was wir wollten:

  • Benutzer
  • Benutzergruppen
  • Moderatoren-/Sperr-/Adminstatus
  • private Nachrichten
  • Kategorien
  • Themen
  • Antworten

und so weiter und so fort. Wir haben auch das Kochen in den Migrationsprozess selbst integriert, da wir einige Anpassungen in vBulletin haben, um Tweets, YouTube-Videos und andere Dinge einzubetten, die sich nicht gut mit der Art und Weise übersetzen lassen, wie Discourse sie standardmäßig verarbeitet.

Wir haben die Tests auf einem 4vcore/8GB durchgeführt und die gesamte Migration dauerte etwa 7-8 Stunden.
Für die Produktion haben wir genug auf unserem Patreon gesammelt, um uns einen 8 vcore / 30 GB leisten zu können, und das Ganze dauerte 4 Stunden.

Wir haben die Migration live gestreamt, mit ein paar Fehlstarts (natürlich :stuck_out_tongue:) und etwas Musik im Hintergrund. Wir hatten ziemlich viel Spaß.

Sie können die Details der Anzahl der Themen/Beiträge und die Zeitplanung im Screenshot sehen.
Die drei Zeitangaben sind: Lesezeit, Kochzeit, Schreibzeit.

Es war ein anstrengendes, aber berauschendes Abenteuer und, @pfaffman, glaub mir, du bist einer Kugel ausgewichen, als ich beschloss, deine Hilfe nicht anzunehmen.

Bis heute belaufen sich die geschätzten Stunden nur MEINER Zeit für dieses Projekt auf rund 25.000 £ :rofl:
Ich zähle nicht die Zeit, die die anderen drei Leute in den letzten 2 Monaten dafür aufgewendet haben, oft bis spät in die Nacht daran gearbeitet haben.

Wir führen noch einige Skripte nach der Migration aus, eines, das alle Avatare importiert, und ein anderes, das alle Permalien-Weiterleitungen erstellt, damit Links, die in Antworten geschrieben wurden und noch auf das alte URL-Format zeigen, tatsächlich richtig weiterleiten. Ich erwarte, dass diese in den nächsten 24 Stunden abgeschlossen sein werden.

Wir werden in etwa zwei Wochen besprechen, ob wir das Repository unseres Skripts bereinigen und es Open Source anbieten können. Diese Entscheidung kann ich natürlich nicht allein treffen.

Bearbeiten: Füge gerade die vollständige Migration aller Benutzeravatares + Permalinks von internen Verweisen auf Themen/Kategorien hinzu

image

Nach der Hauptdatenmigration ausgeführt.

Prost

3 „Gefällt mir“

Das klingt wahr. Dein Code klingt ziemlich großartig, obwohl das bloße Laufenlassen des Skripts für einen Monat wahrscheinlich zum gleichen Endergebnis geführt hätte. Ein endgültiger Import wäre wahrscheinlich in ein paar Stunden oder vielleicht weniger gelaufen.

Froh, dass du es geschafft hast! Glückwunsch zu einer gut gemachten Arbeit.

1 „Gefällt mir“

Ich meine, der Sinn war, die Website nicht einen Monat lang zu schließen, während sie migriert wird :slight_smile:

Außerdem ist es irgendwie schwer, wenn dem offiziellen Skript Teile fehlen :thinking:

Sie hätten das nicht gebraucht. Sie hätten das Skript ausgeführt und die Website offen gelassen. Wenn das Skript fertig ist, würden Sie es erneut ausführen; es würde die bereits importierten Daten überspringen, sodass es viel schneller läuft. Möglicherweise müssen Sie dies ein paar Mal tun, aber schließlich würde es in Minuten oder Stunden fertig sein, da nicht mehr viele neue Daten zu verarbeiten wären. Dann würden Sie die alte Website einfrieren und sie ein letztes Mal ausführen. Standardmäßig prüft das Skript jeden Benutzer und jeden Beitrag, aber Sie können auch IMPORT_AFTER festlegen, um ihm ein Datum anzugeben, sodass ältere Daten vollständig ignoriert werden und es sehr wenig Zeit in Anspruch nimmt.

Hallo! Ich bin einer der Leute, die daran gearbeitet haben. Persönlich war es eine sehr bereichernde Lernerfahrung, und wir müssen noch die letzten Probleme ausbügeln, aber die gesamte Community hat positiv reagiert: Der neue Thread mit Reaktionen im Forum hat…

nun, diese Anzahl von Beiträgen in etwa 24 Stunden :smile:

Ich weiß nicht, wie viele andere Fälle es da draußen gibt, in freier Wildbahn, von vB3-Installationen, die migriert werden müssen, aber - in der Hoffnung, dass dieser Thread jemandem in Zukunft helfen könnte - es ist machbar, verzweifelt nicht zu sehr. Es ist viel Arbeit, aber es ist machbar :smile:

3 „Gefällt mir“