Impossible de supprimer un composant de thème obsolète depuis la CLI - échec de l'amorçage

Je sais que cela est dû au thème Alternative Logos :

I, [2021-06-25T11:00:32.360020 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Échec de la mise à jour du thème Alternative Logos
about.json contient des valeurs non valides : La version maximale de Discourse est invalide
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'

J’avais ce composant, mais comme Discourse est hors ligne, je ne peux pas accéder au panneau d’administration pour le supprimer. Comment puis-je supprimer ce composant de thème depuis la ligne de commande ?

Je ne suis pas sûr de ce que fait la commande cleanup sur les conteneurs arrêtés, mais vous pourriez simplement lancer ./launcher start app et désactiver le coupable (dans https://your.domain/admin/customize/themes) ?

Voulez-vous dire les plugins dans le fichier app.yml ?

Oui.

Je sais que c’est à cause d’Alternative Logos :

I, [2021-06-25T11:00:32.360020 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Échec de la mise à jour de Alternative Logos
about.json contient des valeurs non valides : La version maximale de Discourse est invalide
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'

J’avais ce composant, mais comme Discourse est hors ligne, je ne peux pas accéder au panneau d’administration pour le supprimer. Comment puis-je supprimer ce composant de thème depuis la ligne de commande ? Je ne peux pas reconstruire ni démarrer l’application, ce qui est vraiment embêtant.

Donc :

  • Je ne peux pas reconstruire car Alternative Logos possède une version maximale dans about.json que je dépasse
  • Je ne peux pas supprimer le composant Alternative Logos sans ouvrir l’application
  • Je ne peux pas ouvrir l’application car je ne peux pas la reconstruire

Existe-t-il une solution pour résoudre ce problème ? Je souhaite me débarrasser du composant Alternative Logos.

Ne pouvez-vous pas simplement démarrer l’application sans la recompiler ?

./launcher start app

Impossible de trouver l'image 'local_discourse/app:latest' localement
docker : Réponse d'erreur du démon : l'accès au tirage est refusé pour local_discourse/app, le référentiel n'existe pas ou peut nécessiter 'docker login' : refusé : l'accès demandé à la ressource est refusé.
Voir 'docker run --help'.

Pas vraiment, malheureusement

Alors peut-être git pull, mais attendez peut-être les renforts :sweat_smile: (je vois que Jay répond…)

Non, git pull ne fait rien.

Avez-vous essayé

  ./launcher start app

Cependant, si vous avez exécuté ./launcher cleanup alors que l’ancien conteneur était arrêté et que vous n’avez plus de conteneur à démarrer, vous êtes dans une situation délicate. Est-ce ce que vous avez fait ? On dirait bien que oui.

Je pense qu’il s’agit d’un bug : un composant de thème défectueux ne devrait pas rendre la mise à jour impossible. Une solution devrait donc être apportée prochainement.

Je pense que vous pourriez modifier la base de données pour supprimer le composant de thème, mais si vous n’avez pas de conteneur en cours d’exécution pour accéder à la base de données, je ne suis pas tout à fait sûr de la façon de procéder.

Ma seule autre solution d’urgence immédiate serait de voir si vous pouvez restaurer la base de données existante sur une installation propre.

Peut-être pouvez-vous restaurer la base de données sur une installation propre (elle ignorera peut-être le thème défectueux ?), puis supprimer votre base de données, reconstruire une nouvelle base de données vide avec Discourse mis à jour, et enfin restaurer la base de données depuis l’installation propre distante.

Une autre solution consisterait à créer une image contenant uniquement la base de données et à utiliser SQL pour supprimer le composant de thème défectueux.

2 « J'aime »

Je suppose que je vais procéder à une installation propre, puis restaurer depuis une sauvegarde (et dans ce fichier de sauvegarde .sql, je vais apporter des modifications aux logos alternatifs.

Cependant, c’est vraiment une situation fâcheuse : si un composant de Discourse se brise, vous n’avez d’autre choix que de réinstaller depuis zéro.

2 « J'aime »

Ok, donc la solution a été de configurer une nouvelle installation de Discourse, restaurer depuis une sauvegarde, puis supprimer le composant qui causait le problème.

3 « J'aime »

J’ai rencontré une situation similaire ce matin, mais j’ai pu simplement redémarrer l’application.

Mon site compte environ 10 thèmes, et tous utilisent depuis toujours le composant « Logos alternatifs », car chaque thème affiche des logos de couleurs différentes pour s’adapter à sa propre palette. Je vois maintenant qu’il est possible d’entrer les logos du thème sombre dans les paramètres du site. Cependant, si je supprime ce composant obsolète, où devrai-je ajouter tous les autres logos personnalisés pour les autres thèmes ?

Je pense que le problème se situe uniquement dans le fichier about.json et que vous pouvez bifurquer le composant de thème pour créer votre propre version. Cependant, je n’ai pas examiné cela de près ni essayé moi-même.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.