Passaggio a un nuovo server: errore con il database

Stiamo cercando di spostare tutto su un nuovo server; dopo la migrazione, in alto compare questo messaggio:

Quando provo a eseguire quanto segue all’interno dell’app:

  # sudo ./launcher enter app
  # rails c
  > user = User.find_by_email("<admin_email>")
  > user.admin = true
  > user.save`

ottengo il seguente errore:

ActiveModel::MissingAttributeError: can’t write unknown attribute ``
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activemodel-6.0.2.2/lib/active_model/attribute.rb:206:in with_value_from_database' Caused by ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """" LINE 1: ... = '2020-04-23 16:30:36.173916' WHERE "site_settings"."" = 3 ^ from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in exec_params’
Caused by PG::SyntaxError: ERROR: zero-length delimited identifier at or near “”“”
LINE 1: … = ‘2020-04-23 16:30:36.173916’ WHERE “site_settings”.“” = 3
^
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.0.1/lib/patches/db/pg.rb:69:in `exec_params’

Avete qualche idea su come completare l’installazione? Potrebbe sembrare che una tabella sia corrotta.

Puoi fare un passo indietro e spiegarci più precisamente cosa stai cercando di fare? Si tratta di un’operazione precedente o successiva al ripristino di un backup? O si tratta di una nuova installazione?

Passaggi eseguiti:

  1. Installazione dell’ultima versione sul nuovo server
  2. Impostazione del vecchio server in sola lettura e creazione di un backup
  3. Ripristino del backup sul nuovo server

L’errore si verifica dopo il passaggio 3 e abbiamo ripetuto il processo due volte.

Hai definito un’email per sviluppatori in app.yml? Hai già provato a ricompilare il container?

Sì. Discourse funziona correttamente senza importare la migrazione. Nessun errore. Dopo il ripristino del database di backup, le impostazioni non possono essere modificate perché si verifica un errore, e tentando di attivare l’email degli sviluppatori non viene inviata alcuna email. Ecco perché stavo cercando di attivare l’account manualmente, ma poi ho riscontrato quell’errore.

Hai eseguito ./launcher rebuild app dopo il ripristino del backup? O sei entrato nel contenitore ed eseguito rake db:migrate? Potrebbe aiutare, ma non possiamo esserne certi finché non proviamo :smiley:

Ho già eseguito l’app di ricostruzione del launcher, ma il problema persiste. Devo eseguire rake dal server o all’interno dell’app (launcher enter app)?

./launcher rebuild app farà la stessa cosa.

Hai ancora l’istanza precedente in esecuzione? Se sì, la cosa migliore da fare ora è distruggere quella nuova e ricostruirla partendo da un backup recente dell’istanza vecchia.

Sì, il server precedente è ancora in esecuzione. Dopo aver indagato più a fondo sul problema, questo si verifica anche nel vecchio server. Appare lo stesso errore. :face_with_raised_eyebrow:

Dovrei provare a cancellare la tabella site_settings e reimpostarla manualmente? Discourse funzionerà dopo aver eliminato tutti i record da questa tabella manualmente da PostgreSQL?

Eviterei di farlo, a meno che tu non sappia esattamente cosa stai facendo.

Potresti voler pubblicare in Marketplace per ottenere assistenza più avanzata. Sembra, purtroppo, che tu abbia un’installazione danneggiata.