Hallo - da ein Plugin, das in unserer Discourse-Instanz verwendet wird (Multilingual), nicht mehr aktualisiert wird und einige seiner Funktionen in neueren Versionen von Discourse unterstützt werden, wollten wir ein Migrationsskript verwenden, um Werte in der Datenbank an neue Orte zu verschieben.
Bei der Recherche in den Wiki-Artikeln dieser Seite oder im Git-Repository von Discourse habe ich jedoch keine Dokumentation zum Schreiben eines Migrationsskripts gefunden (welche Klasse geerbt werden soll, welche Methoden verwendet werden sollen…).
Gibt es eine Dokumentation, die ich übersehen habe? Abgesehen davon, dass ich den Migrationscode betrachte, gibt es Tipps, um mich mit Migrationsskripten vertraut zu machen?
Als ich Inhalte von einer Plattform ohne verfügbares Discourse-Skript migrieren musste, hatte ich kein Glück, echte Dokumentation zu diesen Dingen zu finden. Bestehende Skripte waren für mich zu komplex, um sie zu analysieren. Ich habe am Ende manuell ein Thema nach dem anderen über die Rails-Konsole importiert – nicht sehr skalierbar.
Wenn ich ein größeres Projekt (und ein Budget) gehabt hätte, hätte ich wahrscheinlich @pfaffman für seinen Migrationsservice beauftragt.
Was versuchen Sie zu tun? Wenn Sie immer noch Discourse verwenden, ist das keine Migration. Was möchten Sie wohin verschieben?
Wenn Sie einfach auf eine aktuelle Version von Discourse umsteigen möchten, können Sie das Plugin wahrscheinlich einfach entfernen und ein Upgrade durchführen.
Wenn Sie Discourse nicht mehr verwenden, dann ist es kein Discourse-Migrationsskript, das Sie benötigen.
Honeyxilia, wenn ich deine Frage richtig verstehe, hast du viel Arbeit mit dem Pavilion Multilingual Plugin geleistet und möchtest diese Daten in die neueren Discourse Content Localization Funktionen „migrieren“. Ist das richtig? (Ich bin mir auch nicht sicher, wo ich damit anfangen würde.)
Was ich mit Migrationsskript meine, sind die Datenbankmigrationsskripte (db/migrate), die von ActiveRecord::Migration erben und dazu verwendet werden, die Datenbank an die Änderungen von Discourse anzupassen.
Zum Beispiel haben wir die SQL-Befehle, um ein mehrsprachiges Plugin-Locale in ein natives Discourse-Locale zu übertragen.
Meine Frage würde sich hauptsächlich auf die Datenbankmigrationsskripte beziehen, um die SQL-Befehle bei der Migration der Datenbank auf eine neuere Version zu automatisieren.