Errore durante l'aggiornamento, impossibile inizializzare

Ciao! Ho un problema con l’ultimo aggiornamento:

FAILED -------------------- Pups::ExecError: cd /var/www/discourse & su discourse -c ‘bundle exec rake db:migrate’ fallito con ritorno #<Process::Status: pid 690 exit 1> Posizione del fallimento: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’ exec fallito con i parametri {“cd”=>“$home”, “hook”=>“db_migrate”, “cmd”=>[“su discourse -c ‘bundle exec rake db:migrate’”]} 7027ff0ccd166f831f9728472676ad91704fdd4caa6833a219d44697e740acdc ** FAILED TO BOOTSTRAP ** si prega di scorrere verso l’alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno. ./discourse-doctor potrebbe aiutare a diagnosticare il problema.

Anche Sideqik si è fermato.

Qualcuno può aiutarmi? Grazie!!

P.s. il sito è llastres.com

2 Mi Piace

Puoi per favore fare come dice il messaggio e

Abbiamo bisogno dell’intero log per poter risolvere il problema.

3 Mi Piace

Ok, come posso identificarli? Cerco la parola “errore”? Se mi dici come eseguire il log, lo allegherò. Sono nuovo nell’uso dei server. Grazie mille per il tuo aiuto.

Modifica, ho trovato questo:

Caused by:                                              
PG::DuplicateTable: ERROR:  relation "discourse_reactions_reactions" already exists
2 Mi Piace

Puoi condividere il tuo file app.yml?

3 Mi Piace

Mi dispiace, ero al lavoro. Questo è il mio app.yml:

## questo è il template del container Docker Discourse tutto in uno e standalone
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI MOLTA ATTENZIONE QUANDO EDITI!
## I FILE YAML SONO ESTREMAMENTE SENSIBILI A ERRORI DI SPAZIATURA O ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file secondo necessità

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Decommenta queste due righe se desideri aggiungere Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## quali porte TCP/IP dovrebbe esporre questo container?
## Se vuoi che Discourse condivida una porta con un altro webserver come Apache o nginx,
## vedi https://meta.discourse.org/t/17247 per i dettagli
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.spanish"

  ## Imposta db_shared_buffers al massimo del 25% della memoria totale.
  ## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, o puoi sovrascriverlo
  db_shared_buffers: "2048MB"

  ## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
  #db_work_mem: "40MB"

  ## Quale revisione Git dovrebbe usare questo container? (default: tests-passed)
  #version: tests-passed

env:
  LC_ALL: es_ES.UTF-8
  LANG: es_ES.UTF-8
  LANGUAGE: es_ES.UTF-8
  DISCOURSE_DEFAULT_LOCALE: es

  ## Quante richieste web concorrenti sono supportate? Dipende da memoria e core CPU.
  ## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, o puoi sovrascriverlo
  UNICORN_WORKERS: 8

  ## TODO: Il nome di dominio a cui risponderà questa istanza di Discourse
  ## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
  DISCOURSE_HOSTNAME: EDITED

  ## Decommenta se vuoi che il container venga avviato con lo stesso
  ## hostname (-h option) specificato sopra (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Elenco di email separate da virgola che diventeranno amministratori e sviluppatori
  ## alla prima registrazione esempio 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'EDITED'

  ## TODO: Il server di posta SMTP utilizzato per convalidare nuovi account e inviare notifiche
  # Indirizzo SMTP, nome utente e password sono obbligatori
  # ATTENZIONE il carattere '#' nella password SMTP può causare problemi!
  DISCOURSE_SMTP_ADDRESS: EDITED
  DISCOURSE_SMTP_PORT: EDITED
  DISCOURSE_SMTP_USER_NAME: EDITED
  DISCOURSE_SMTP_PASSWORD: EDITED
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, default true)
  DISCOURSE_SMTP_DOMAIN: EDITED
  DISCOURSE_NOTIFICATION_EMAIL: EDITED

  ## Se hai aggiunto il template Lets Encrypt, decommenta qui sotto per ottenere un certificato SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: EDITED

  ## L'indirizzo CDN http o https per questa istanza di Discourse (configurato per il pull)
  ## vedi https://meta.discourse.org/t/14857 per i dettagli
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## La chiave dell'indirizzo IP di geolocalizzazione Maxmind per la ricerca dell'indirizzo IP
  ## vedi https://meta.discourse.org/t/-/137387/23 per i dettagli
  DISCOURSE_MAXMIND_LICENSE_KEY: EDITED
## Il container Docker è stateless; tutti i dati sono memorizzati in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## I plugin vanno qui
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-reactions
## Qualsiasi comando personalizzato da eseguire dopo la build
run:
  - exec: echo "Inizio comandi personalizzati"
  ## Se vuoi impostare l'indirizzo email 'Da' per la tua prima registrazione, decommenta e cambia:
  ## Dopo aver ricevuto la prima email di registrazione, ricommenta la riga. Deve essere eseguita solo una volta.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fine comandi personalizzati"
1 Mi Piace

La verità è che non ho mai avuto alcun problema con l’aggiornamento. Non stavo facendo nulla di strano, ho semplicemente aggiornato il sistema e ho ricevuto l’avviso che si era verificato un errore.

Questo è il log completo:

1 Mi Piace

Ha problemi nell’esecuzione di una migrazione di maggio 2021. Questo sito è stato spostato tra i canali di rilascio (beta/stabile/test-superati) o ripristinato da un backup in qualche momento?

1 Mi Piace

Mi sembra di ricordare che siamo migrati da mybb in quella data (21 maggio)

Sì, è vero che oggi ho provato a recuperare un backup di inizio mese per provare ad avere una copia funzionante prima dell’errore, ma quando ho cliccato su avvia, è apparsa una schermata di errore.

Mi scuso se la mia scrittura è strana, sto usando un traduttore.

2 Mi Piace

Non riesco ancora a trovare una soluzione e i forum sono ancora inattivi, hai qualche idea su dove andare da qui? Grazie!!

2 Mi Piace

Il mio forum è andato offline dopo l’aggiornamento. L’aggiornamento sembra essere andato a buon fine, ma quando sono andato alla pagina del forum, la pagina era bianca.

L’ho aggiornato manualmente e il forum ha funzionato. Non so se questo ti sarà d’aiuto o meno.

2 Mi Piace

Grazie per la tua risposta. Penso che il mio problema sia correlato a un errore del database relativo alla migrazione dei forum. La ricostruzione dell’app non funziona.

Ho controllato le FAQ e i manuali, ma non riesco a trovare alcuna soluzione.

Ho alcuni backup precedenti (penso) all’errore, ma non posso caricarli perché l’app non si avvia. Posso solo pensare di cancellare tutto, fare un’installazione pulita e caricare un backup…

1 Mi Piace

Avendo un backup e considerando che non posso eseguire l’app (per ripristinare il backup), cosa posso fare? Non vedo alternative se non eliminare Docker e ricominciare da capo?

1 Mi Piace

L’unico argomento che ho trovato con un problema simile è stato Unable to login into discourse suddenly - #8 by Tarek_Khalil, e il consiglio è stato di ripristinare un backup da prima del pasticcio della migrazione, che potrebbe non essere l’opzione migliore nel tuo caso, dato che è passato un po’ di tempo.

Temo che gli errori del database siano al di fuori delle mie competenze. @pfaffman e @RGJ sono normalmente molto bravi in queste cose (anche se non so se si sono già imbattuti in questo). Avete qualche trucco da suggerire?

2 Mi Piace

Quello che devi fare è entrare in postgres e rimuovere quella tabella.

A grandi linee, è qualcosa del tipo

./launcher enter app
sudo postgres
psql
drop table la_tabella_menzionata sopra;

E poi dovresti essere in grado di eseguire l’aggiornamento.

Modifica: ma speriamo che tu faccia prima un backup solo del database, per sicurezza!

4 Mi Piace

Mi scuso, sono nuovo nell’uso dei server e dei comandi Linux. L’app non era in esecuzione, quindi faccio:

./launcher start app
x86_64 arch detected.                                                                                           starting up existing container                          
+ /usr/bin/docker start app
app

Dopo di che:

./launcher enter app

E poi, seguendo le tue indicazioni, primo errore:

sudo postgres            
sudo: postgres: command not found

Se digito psql:

psql: error: FATAL: database "root" does not exist

Mi dispiace. Sono al telefono e non sto pensando abbastanza bene da spiegare…

Dopo l’avvio dell’app

su - postgres
psql discourse

E poi il

 drop table discourse_reactions_reactions ;

E poi digita exit o control-d alcune volte per uscire da tutto

Prego! Quando svuoto una tabella, un’altra mi dà un errore. Ho già svuotato circa 3 tabelle… Devo continuare così una per una? Grazie mille per il tuo aiuto.

Hmm. Spero che tu abbia un backup. Ma forse? Non ha senso che le migrazioni siano così sballate.

1 Mi Piace

Mi do una risposta da solo. Dopo aver svuotato 7 tabelle (discourse_reactions_reactions, directory_columns, external_upload_stubs, associated_groups, user_associated_groups, group_associated_groups, discourse_reactions_reaction_users) il sito è di nuovo operativo. Ho anche ripristinato l’ultimo backup!

Grazie a tutti per il vostro aiuto! Buon fine settimana :slight_smile:

2 Mi Piace

Ma sei riuscito ad aggiornare all’ultima versione?

1 Mi Piace