root@redmine:/var/discourse# ./launcher enter app
ls -al ls -al root@xxxxx-app:/var/www/discourse# ls -al /var/www/discourse/public/assets/vendor-b631d4ab0775fdbe453aa2158e18dc41826d0ba619e5f2731e5b9fa4c458af99.js
-rw-r--r-- 1 discourse www-data 659907 Jan 22 04:55 /var/www/discourse/public/assets/vendor-b631d4ab0775fdbe453aa2158e18dc41826d0ba619e5f2731e5b9fa4c458af99.js
Grazie… assolutamente nessun plugin o personalizzazioni pesanti… era essenzialmente una nuova installazione alla fine del 2020, solo piccole modifiche alle impostazioni tramite l’interfaccia di amministrazione per cose come i permessi dei moderatori, ecc. Molto strano.
Purtroppo non ho fatto un backup prima di eseguire l’aggiornamento, anche se ne ho alcuni automatizzati di un paio di giorni fa. Immagino che questa sia l’unica via d’uscita per ora… non avendo familiarità con Ruby, non ho idea di come risolvere quell’errore.
Ah, sembra che l’esecuzione di ./launcher restart app abbia almeno riportato tutto online, nonostante gli aggiornamenti dello schema del database eseguiti. Prima di ciò, restituiva un errore 500. Uff!
Questi sono i contenuti della directory dei plugin; presumo siano stati installati con l’installazione di base, dato che non ne ho aggiunti manualmente.
root@redmine-app:/var/www/discourse# ls -al plugins/
total 12
drwxr-xr-x 22 discourse discourse 4096 Nov 4 04:54 .
drwxr-xr-x 56 discourse discourse 4096 Jan 22 04:55 ..
drwxr-xr-x 13 discourse discourse 43 Nov 4 04:54 discourse-details
drwxr-xr-x 16 discourse discourse 54 Nov 4 04:54 discourse-local-dates
drwxr-xr-x 20 discourse discourse 69 Jan 22 04:55 discourse-narrative-bot
drwxr-xr-x 11 discourse discourse 59 Nov 4 04:54 discourse-presence
drwxr-xr-x 19 discourse root 4096 Jan 22 04:43 docker_manager
drwxr-xr-x 4 discourse discourse 51 Sep 28 05:11 lazy-yt
drwxr-xr-x 25 discourse discourse 99 Nov 4 04:54 poll
drwxr-xr-x 8 discourse www-data 129 Nov 4 04:54 styleguide
Il tema del sito è un po’ rotto dopo il riavvio, immagino perché le risorse non erano state completate nella compilazione… mi chiedo se ci sia un modo per portarlo a termine manualmente.
Questa è la sezione nel file JS del fornitore su cui sta segnalando un problema:
// permette di importarlo come modulo
if (typeof define !== "undefined") {
define("handlebars", ["exports"], function (__exports__) {
// Potrebbe non essere definito lato server, il che va bene per pretty-text
if (typeof Handlebars !== "undefined") {
// eslint-disable-next-line
__exports__.default = Handlebars;
__exports__.compile = function () {
// eslint-disable-next-line
return Handlebars.compile(...arguments);
};
}
});
define("handlebars-compiler", ["exports"], function (__exports__) {
// eslint-disable-next-line
__exports__.default = Handlebars.compile;
});
}
;
La riga 1850 (quella che genera l’errore) è questo frammento:
return Handlebars.compile(...arguments);
Esiste qualche workaround temporaneo che potrei applicare qui per superare il problema? O quel file verrà generato ogni volta che provo ad aggiornare? (P.S. Dopo il riavvio, il sistema pensa che l’aggiornamento sia stato completato, ma il tema è rotto… mi chiedo se ci sia un modo per superare questo passaggio o se dovrò ripristinare dal backup, fondamentalmente…)
OK - quindi non so perché, ma ho eseguito il processo di aggiornamento manuale (git pull; ./launcher rebuild app) e ha funzionato.
Molte altre attività, come gli aggiornamenti di PostgreSQL, ecc., sono state eseguite come parte di questo aggiornamento manuale.
La mia ipotesi: qualcosa in quel commit sopra non era compatibile con uglify-js o la versione di Rails o altro, sul contenitore originale. Era essenzialmente un aggiornamento che richiedeva il processo di aggiornamento ‘manuale’.
Poiché l’interfaccia di amministrazione web mi ha permesso di aggiornare docker_manager e poi l’applicazione Discourse stessa, ho pensato che non fosse necessario (so che a volte indica che un aggiornamento tramite l’amministratore web non può essere eseguito e che è necessario farlo manualmente… ma in questo caso non è successo, e probabilmente avrebbe dovuto succedere…)
Ho avuto anche io un problema durante l’esecuzione di questo aggiornamento (aggiornamento Web)
Dopo aver eseguito questi comandi:
cd /var/discourse
git pull
./launcher rebuild app
Discourse funziona, ma non è possibile accedere al pannello di amministrazione (/admin)
L’aggiornamento di ubuntu ha aiutato a ripristinare il funzionamento
L’annuncio ha indicato che sarebbe stato necessario eseguire una ricostruzione da riga di comando. Non sono sicuro del motivo per cui l’interfaccia web non abbia saputo imporre tale requisito.
Stranamente, stavo proprio cercando di usare quella funzionalità in dev e non funziona per me… L’oggetto Handlebars ha solo create(), non compile(), anche se potrei stare sbagliando strada… Ne ho parlato qui: Adding a bespoke raw template