Dieses Tool würde alle zusätzlichen Konfigurationsdaten aus der Datenbank entfernen. Das Tool würde alle hinzugefügten Spalten, Konfigurationszeilen und Tabellen aus der Datenbank entfernen, die nicht in der Standardinstallation von Discourse vorhanden sind. Das Tool würde alle Inhalte und Site-Einstellungen unverändert lassen. Der Hauptaugenmerk würde darauf liegen, alle Plugin- und Theme-Komponenten aus der Datenbank zu entfernen.
Die beste Lösung, die mir einfällt, ist, eine neue Instanz aus einem Backup einzurichten
Das ist die sauberste Lösung, um Ihre Forendaten ohne viel manuellen Aufwand zu erhalten.
Ich glaube jedoch, dass Backups alle Tabellen enthalten, die in der Instanz vorhanden waren, von der Sie ein Backup erstellt haben, und dass dies auch von Plugins erstellte Tabellen enthalten kann, auch wenn Sie das Plugin nicht auf der neuen Instanz installiert haben.
Wenn Sie sich die Hände schmutzig machen wollen, können Sie die Rake-Tasks verwenden, um eine Datenbank zu löschen und eine neue zu erstellen und alle Migrationen durchzuführen, aber das löscht alle Ihre Daten.
Das ist der Grund, warum „eine neue Umgebung installieren und ein Backup wiederherstellen“ keine optimale Lösung ist. Sie haben immer noch Überbleibsel von alten Komponenten und Plugins, die in der Datenbank verbleiben.
Es sollte ein letztes Werkzeug geben, das alle Änderungen an der Datenbank, die von Komponenten und Plugins vorgenommen wurden, entfernt und die Daten und Website-Einstellungen unverändert lässt. Dieses Werkzeug könnte ausgeführt werden, bevor die neue Installationslösung in Anspruch genommen wird.
Viele Migrationen sind in Plugins gespeichert, die nicht vorhanden sind, wenn sie nicht installiert sind, sodass nichts rückgängig gemacht werden kann.
Aber versuchen Sie, es zu erstellen und sehen Sie, ob Sie diese Probleme überwinden können.
Sie verwenden den Begriff „Migrations“. Was meinen Sie mit diesem Begriff?
Ich verwende den Begriff, um die „Migration“ von Benutzerdaten und Inhalten in ein System zu bezeichnen. Dies sollte niemals die Standarddatenbankstruktur ändern.
Das Einzige, was eine Datenbankstruktur ändern könnte, ist ein Plugin. Es sei denn, Discourse erlaubt andere Möglichkeiten für Personen, die Datenbankstruktur zu ändern.