Pfad der Themenkomponenten

Hallo!

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.

2 „Gefällt mir“

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.

Wie kann ich es also trotzdem zum Laufen bringen?

1 „Gefällt mir“

Warum nicht? Was passiert stattdessen?

Das Alter des Backups sollte keine Rolle spielen. Selbst Backups von vor fünf Jahren lassen sich problemlos wiederherstellen.

Um ehrlich zu sein, scheinen die Theme-Komponenten das geringste Ihrer Probleme zu sein.

Wenn sie über die Benutzeroberfläche nicht deinstalliert werden können, befürchte ich, dass auch andere Methoden scheitern werden.

1 „Gefällt mir“

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.

1 „Gefällt mir“

Nichts passiert, die Seite ist im abgesicherten Modus nicht verfügbar.

Natürlich spielt es eine Rolle, denn alle Beiträge nach dem letzten Backup sind weg.

Und nein, das Forum hat einwandfrei funktioniert, bis ich versucht habe, das Update durchzuführen, bevor ich die Komponenten entfernt habe.

@itsbhanusharma
Danke für deine Antwort. Ich wusste nicht, dass das Theme und die Komponenten in der Datenbank gespeichert sind.

Wie kann ich auf die Datenbank zugreifen?

EDIT:
Okay, ich bin in der Datenbank und ich denke, es ist die Tabelle theme_settings.
Wie lösche ich alle Komponenten?

Ich habe deinen Beitrag falsch gelesen. Ich dachte, du hättest gesagt, er sei zu alt, weil die Wiederherstellung fehlgeschlagen ist.

1 „Gefällt mir“

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.

Ja, der Container läuft noch.
Das Deaktivieren der Komponenten würde mir sehr helfen.

Sie werden vollständig in der Datenbank gespeichert (Tabellen, die mit theme* beginnen).

Und wie kann ich sie löschen (nicht alles in der Tabelle)?

Aus dem Stehgreif – führe dies in der Rails-Konsole aus. Finde die ID des Themes in der URL, wenn du es dir ansiehst.

t = Theme.find(123)
t.enabled = false
t.save

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.

Kannst du mehr Details teilen? Bekommst du eine Fehlermeldung? Wenn ja, welcher Fehler tritt auf? Oder hat es einfach keine Wirkung?

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.

Theme.where(user_selectable: true).update_all(user_selectable: false)
Theme.where(auto_update: true).update_all(auto_update: false)
Theme.clear_default!

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.

6 „Gefällt mir“

Ich musste es nach deinen Befehlen neu aufbauen, und es hat funktioniert – mein Forum ist wieder online! :+1: :slightly_smiling_face:

Vielen Dank an alle, die mir geholfen haben!

1 „Gefällt mir“

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?

EDIT: Wie beim Fehler, wenn „Alternative Logos

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

1 „Gefällt mir“

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.

./launcher start app
./launcher enter app
rails c