Ich möchte auf die neueste Version upgraden, habe aber Probleme mit einigen Theme-Komponenten.
Es handelt sich dabei ausschließlich um meine eigenen Komponenten, die ich von GitHub zu GitLab verschoben habe. Wenn ich jetzt Discourse upgraden möchte (nicht innerhalb von Discourse), erhalte ich Fehlermeldungen, da diese Komponenten nicht mehr verfügbar sind. Ich habe versucht, sie innerhalb von Discourse zu löschen, aber sie werden nicht entfernt.
Meine Frage ist nun: Wo ist der Pfad, um sie direkt auf dem Server zu löschen? Ich kann sie nicht finden.
Ich habe den Safe-Mode versucht, aber ich kann im Safe-Mode nicht auf das Forum zugreifen.
EDIT:
Gibt es eine Datei wie die app.yml, in der alle Themes und Komponenten gespeichert sind, sodass ich die Liste löschen und Discourse ohne sie neu aufbauen kann?
Ich denke, das ist das Problem, das du lösen musst. Der richtige Ansatz besteht darin, alle Themen und Themenkomponenten zu löschen, die von der alten Stelle stammen, und neue von ihren neuen Standorten zu importieren.
Das ist nicht möglich, da Discourse sonst in einer Endlosschleife hängen bleibt. Deshalb habe ich gefragt, wie man sie auf andere Weise löschen kann.
Ich komme nicht einmal in den abgesicherten Modus.
Eine Neuinstallation ist ebenfalls nicht möglich, da das Backup zu alt ist.
Nach ./launcher rebuild app habe ich festgestellt, dass das Forum für Gäste nicht verfügbar ist.
Ich denke, Komponenten manuell in der Datenbank zu deaktivieren, wäre hier eine Lösung als letztes Mittel. Das ist zwar sehr riskant, aber machbar, wenn es keine anderen Optionen gibt.
Deaktivierte Komponenten ermöglichen zumindest, dass der Neuaufbau erfolgreich abgeschlossen wird. Dadurch kann wieder auf die Admin-Oberfläche zugegriffen werden, um Komponenten von GitLab zu entfernen und neu zu installieren.
Sie werden nicht in der Datenbank gespeichert, ihr Aktivierungs-/Deaktivierungszustand jedoch schon.
Ich erinnere mich nicht mehr genau an die Schritte, habe aber kürzlich eine ähnlich defekte Installation repariert.
Das Wichtigste ist hier zu wissen, ob dein Container noch läuft. Falls ja, kann ich dir vielleicht einen Rat geben, wie du störende Komponenten über die Datenbank deaktivieren kannst.
Nun, okay, das ist ein Problem.
Ist es nicht möglich, etwas wie pgAdmin zu verwenden, um direkt auf die Datenbank zuzugreifen?
Ich kenne die IDs des Themes und der Komponenten nicht, da ich keinen Zugriff mehr auf den Admin-Bereich habe.
Edit:
Ich habe das Theme und die Komponenten herausgefunden.
Das Deaktivieren funktioniert nicht, also wie kann ich sie mit rails c löschen?
Ich habe sogar versucht, sie mit rake zu entfernen, aber rake kann sie ebenfalls nicht löschen.
rake themes:uninstall https://github.com/link/to/git.git
rake aborted!
Kein Befehl zum Erstellen der Aufgabe 'themes:uninstall' bekannt (sehen Sie sich die Liste der verfügbaren Aufgaben mit `rake --tasks` an)
Meinten Sie vielleicht? themes:install
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(Siehe vollständigen Aufruf, indem Sie die Aufgabe mit --trace ausführen)
Oder was ist der richtige Befehl, um Dinge mit Rake zu löschen?
Ich erhalte eine Liste mit Befehlen über rake --tasks und rake -AT, aber es gibt keinen Befehl, um ein Theme oder eine Komponente zu löschen.
Mit rails c kann ich ein Theme deaktivieren, aber nach einem Neuladen ist immer noch das alte, beschädigte Theme aktiv.
Kannst du das bitte in der Rails-Konsole ausprobieren und prüfen, ob du deine Seite danach laden kannst? Falls nicht, versuche bitte, sie neu zu erstellen.
Hey @Osama. Ich mache mir in letzter Zeit Sorgen wegen des Problems, dass Theme-Komponenten einen Rebuild zerstören können.
Ich denke, wir brauchen ein howto, um das zu behandeln.
Meines Erachtens löst diese Korrektur hier nur den Fall, dass der Build kaputt ist, weil die GitHub-URL defekt ist, oder?
Gibt es für Builds, die wegen eines JavaScript-Fehlers kaputt sind, eine ähnliche Möglichkeit, Themes über die Befehlszeile zu deaktivieren oder zu entfernen, die wir in ein howto aufnehmen sollten?
Ich habe auch schon eine Weile darüber nachgedacht, und meiner Meinung nach macht das für einige Communities Sinn, aber nicht für alle. Manche Communities betrachten ihre Anpassungen/Themes als einen fundamentalen Teil der Identität ihrer Site und möchten unbedingt wissen, wenn es Probleme mit ihren Anpassungen gibt, wenn ihre Site deployed wird. Andere Communities nutzen eine vanilla Discourse-Installation mit ein paar darauf gestreuten Anpassungen/Komponenten und könnten problemlos ein paar Tage ohne sie auskommen.
Vielleicht sollte das Kontrollkästchen „Automatisch aktualisieren, wenn Discourse aktualisiert wird
Ich bin gerade auch auf dieses Problem gestoßen. Wenn Sie eine Komponente mit einem öffentlichen Repository verknüpft haben und dieses Repository dann auf privat stellen, schlagen Neubuilds fehl. Das ist unangenehm, da Benutzer Änderungen vornehmen können, die die Seite Monate später für Systemadministratoren beschädigen können.
Die Befehle unter Path of theme components - #16 by Osama haben bei mir hervorragend funktioniert. Ich würde Anweisungen hinzufügen, wie man die Rails-Konsole aufruft.