Problemi nell'esecuzione degli script di import/migrazione

Ho migrato con successo un forum a Disourcse con uno script personalizzato in precedenza, ma ora, quando lo eseguo di nuovo, ricevo il seguente errore di importazione:

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:81:in `rescue in new_client': Non siamo riusciti a trovare il tuo database: discourse. Che si trova nel file di configurazione del database situato in config/database.yml. (ActiveRecord::NoDatabaseError)

Per risolvere questo problema:

- Hai creato il database per questa app o l'hai eliminato? Potrebbe essere necessario creare il tuo database.
- Il nome del database è cambiato? Controlla che il tuo file database.yml abbia il nome del database corretto.

Per creare il tuo database, esegui:

        bin/rails db:create

L’importazione seguente nel mio script fallisce:

require File.expand_path(File.dirname(__FILE__) + \"/base.rb\")

Eseguo lo script con:

./launcher enter app
cd /var/www/discourse
bundle exec ruby script/import_scripts/avatar.rb

Non capisco davvero l’errore: posso accedere al database tramite sudo -u postgres psql discourse, validando che il database “discourse” esista. Inoltre, il sito web funziona correttamente. Quando apro rails c posso anche accedere ai dati.

Puoi darmi qualche suggerimento su cosa c’è di sbagliato?

Discourse non riesce a trovare il suo database. Quindi devi risolvere questo problema. Si è trattato di un’installazione standard o di un’installazione di sviluppo? Dai un’occhiata alla guida appropriata e fai funzionare discourse come primo passo.

Installazione standard, seguendo https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md

L’unica cosa che ho fatto (che mi viene in mente ora) da quando ha funzionato l’ultima volta è stato ripristinare i backup.

Ciò che mi confonde dell’errore è che tutto il resto funziona. Il sito funziona perfettamente. Solo lo script di importazione fallisce.

E stai eseguendo lo script all’interno del container?

Sì, uso ./launcher enter app e ho una sola configurazione (app).

Oh. Mi dispiace. Hai detto tutto questo nell’OP; non ho letto molto bene!

Non riesco a pensare a una spiegazione. Forse un riavvio?

Ho riavviato e non ha risolto il problema. Ora riscontro lo stesso problema anche sulla mia macchina locale (docker locale)… il che mi fa pensare che in qualche modo io stia eseguendo il comando in modo errato…

E grazie – apprezzo la rapidità delle tue risposte e il supporto!

Sì, ora ho capito. Ho eseguito lo script come root, ma non come utente discourse:

./launcher enter app
cd /var/www/discourse
su discourse
bundle exec ruby script/import_scripts/import.rb

Grazie per il supporto @pfaffman <3

3 Mi Piace

Hmm. Forse qualcosa è cambiato, dato che sono sicuro di non aver eseguito script di importazione da quando ho iniziato a usare Discourse. Buon lavoro!

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