Vecchio Postgres su immagine Docker con due container: web e dati

Ciao a tutti,

Sono bloccato nel tentativo di aggiornare un’istanza Discourse su Docker. Ricevo il seguente errore quando provo a ricostruire, avviare o configurare il container in qualsiasi altro modo:

I, [2020-11-18T15:23:37.357104 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
I, [2020-11-18T15:23:40.298932 #1]  INFO -- : discourse-slack-official è già all'ultima versione compatibile
docker_manager è già all'ultima versione compatibile

I, [2020-11-18T15:23:40.299193 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: Si è verificato un errore, tutte le migrazioni successive sono state annullate:

PG::SyntaxError: ERROR: errore di sintassi vicino a "NOT"
LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                      ^

Dalle mie indagini, sembra che PostgreSQL 12 sia richiesto per l’ultima versione di Discourse, ma attualmente non è incluso nell’immagine Docker ufficiale.

Sembra esserci un ramo di sviluppo nel repository per costruire il container con PostgreSQL 12, ma non ci sono pull request aperte o altro…

Come posso procedere per risolvere/aggiornare la mia installazione di Discourse? Il percorso di aggiornamento è errato e ora sto lottando per riportare i forum online il prima possibile!

2 Mi Piace

Nota aggiuntiva: anche il branch pg12 non funziona (anche se sembra provare a scaricare una versione diversa del contenitore), si riceve ancora lo stesso errore durante db:migrate…

Non è così. L’immagine di base per Discourse include PostgreSQL da molti mesi ormai, fin dall’aggiornamento a PostgreSQL 12.

Puoi condividere il tuo file app.yml? Forse hai forzato un’immagine di base vecchia e l’hai dimenticata?

2 Mi Piace

Quanto è vecchio il tuo checkout di discourse_docker? So che lo script launcher è progettato per aggiornarsi automaticamente, ma potrebbe valere la pena eseguire manualmente git pull solo per sicurezza.

L’immagine base più recente dovrebbe essere:

image="discourse/base:2.0.20201004-2310"

Cosa ottieni se esegui

docker images | grep discourse/base

Inoltre, quel plugin è stato deprecato 3 anni fa :scream:

2 Mi Piace

Strano, sono sull’ultimo commit:

$ git branch -v
* master 4a4b0f8 DOCS: correggere errore di sintassi in readme

E sembra di avere l’immagine più recente:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
discourse/base         2.0.20201004-2310   b64c37d7ab06        6 settimane fa      2.4GB
local_discourse/data   latest              253fd4d68068        3 anni fa           1.7GB

Ho fatto attenzione a liberare le vecchie immagini Docker e ho provato a ricostruire l’app web più volte.

Ahhh, devo ricostruire prima il contenitore data o qualcosa del genere? Non l’ho ancora toccato.

Inoltre, quel plugin è stato deprecato 3 anni fa :scream:

:see_no_evil: è il prossimo sulla mia lista da aggiornare, ma sono bloccato con l’aggiornamento attuale!

Oh, stai usando la configurazione dati avanzata?

Devi fermare il web e ricostruire i dati per aggiornare tutto il software dei dati. C’è una sezione dedicata a questo su PostgreSQL 12 update

8 Mi Piace

Grazie per il tuo aiuto, sto ricostruendo il contenitore data

Ok, sembra aver funzionato, grazie ancora a tutti!

È il tipo di problema che ci si aspetta quando si eredita un’installazione di Discourse e si esegue un aggiornamento per la prima volta :sweat_smile:

4 Mi Piace

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