Errori nell'esportazione dei dati da Teams a Discourse self-hosted su Digital Ocean

Oggi ho eseguito un test per creare un backup completo di un sito Teams e ripristinarlo su un sito self-hosted configurato utilizzando discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. Ha funzionato. S3 era già disabilitato e tutto ha funzionato come previsto. Si trattava di un piccolo sito di test con poco contenuto.

Un passaggio da tenere a mente per una transizione senza interruzioni è assicurarsi di avere installati tutti i plugin abilitati sul sito Teams. Per trovare questa lista, vai su /admin/plugins sul sito Teams, quindi consulta qui su meta i link ai plugin ufficiali su GitHub. Aggiungi quindi quei plugin al tuo file app.yml sul tuo nuovo sito self-hosted.

@biyaniyash Penso che il problema che hai riscontrato, di cui abbiamo parlato via email, fosse che i tuoi backup non contenevano i file caricati. Ora disponi del file di backup corretto con i caricamenti da utilizzare per il ripristino sul tuo sito self-hosted. Fammi sapere come va e se hai imparato qualcosa durante il processo.

2 Mi Piace

Ciao Community,
Aggiornamenti rapidi: Tobias e il suo team sono riusciti a rehostare i nostri team e a eseguire il backup dell’intero sito (con i file caricati!)

Purtroppo, stiamo ancora riscontrando errori durante il ripristino sul sito self-hosted. L’ho anche aggiornato all’ultima release, ma senza successo. L’unica cosa rimasta da fare è installare i plugin (al momento non ho installato alcun plugin personalizzato sul sito self-hosted).

Ho richiesto a Tobias e al team di Discourse di condividere il file app.yml del mio sito dei team o il codice che potrei copiare e incollare, e stanno attualmente fornendo aiuto in tal senso. Tuttavia, sarei felice di ricevere qualsiasi idea su come mettere in piedi e far funzionare il sito, anche se i plugin verranno installati in un secondo momento.


Il ripristino è fallito.

Ecco il log:

[2021-05-11 17:11:08] [INIZIATO]

[2021-05-11 17:11:08] 'biyaniyash' ha avviato il ripristino!

[2021-05-11 17:11:08] Impostazione dello stato del ripristino come in corso...

[2021-05-11 17:11:08] Verifica dell'esistenza di /var/www/discourse/tmp/restores/default/2021-05-11-171108...

[2021-05-11 17:11:08] Copia dell'archivio nella directory tmp...

[2021-05-11 17:11:08] Decompressione dell'archivio, ciò potrebbe richiedere del tempo...

[2021-05-11 17:11:10] Estrazione del file dump...

[2021-05-11 17:11:10] Validazione dei metadati...

[2021-05-11 17:11:10]   Versione attuale: 20210420015635

[2021-05-11 17:11:10]   Versione ripristinata: 20210429154322

[2021-05-11 17:11:10] ECCEZIONE: Stai cercando di ripristinare una versione più recente dello schema. Dovresti eseguire prima la migrazione!

[2021-05-11 17:11:10] /var/www/discourse/lib/backup_restore/meta_data_handler.rb:31:in `validate'

/var/www/discourse/lib/backup_restore/restorer.rb:113:in `validate_backup_metadata'

/var/www/discourse/lib/backup_restore/restorer.rb:43:in `run'

/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'

/var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>'

/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'

/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'

[2021-05-11 17:11:10] Tentativo di rollback...

[2021-05-11 17:11:10] Non era necessario eseguire il rollback

[2021-05-11 17:11:10] Pulizia dei file...

[2021-05-11 17:11:10] Rimozione della directory tmp '/var/www/discourse/tmp/restores/default/2021-05-11-171108'...

[2021-05-11 17:11:10] Impostazione dello stato del ripristino come completato...

[2021-05-11 17:11:10] Notifica a 'biyaniyash' della fine del ripristino...
3 Mi Piace

Questa riga nel tuo log sembra essere la chiave:

[2021-05-11 17:11:10] ECCEZIONE: Stai cercando di ripristinare una versione più recente dello schema. Devi prima eseguire la migrazione!

Non sono un grande esperto in materia, ma penso che tu debba assicurarti che la versione di Discourse sia la stessa del backup.

Solo per conferma: quando hai aggiornato Discourse l’hai fatto da riga di comando, giusto? Con il comando ./launcher rebuild app.

2 Mi Piace

Sembra che ci sia uno script di migrazione dei plugin che richiede l’installazione di almeno i plugin assign, policy e solved.

Ecco l’elenco completo dei plugin inclusi attualmente in Teams: questo elenco è soggetto a modifiche future. Puoi semplicemente copiare e incollare questo elenco nell’app.yml sotto la riga che fa riferimento al docker manager. Assicurati di rispettare esattamente l’indentazione! Si tratta di plugin ufficiali, quindi è sicuro installarli anche se decidi di non utilizzarli. Esistono alcuni plugin aggiuntivi non inclusi qui che forniscono la barra laterale di Teams e funzionalità specifiche per l’hosting di Teams.

      - git clone https://github.com/discourse/discourse-assign.git
      - git clone https://github.com/discourse/discourse-cakeday.git
      - git clone https://github.com/discourse/discourse-calendar.git
      - git clone https://github.com/discourse/discourse-chat-integration.git
      - git clone https://github.com/discourse/discourse-checklist.git
      - git clone https://github.com/discourse/discourse-code-review.git
      - git clone https://github.com/discourse/discourse-docs.git
      - git clone https://github.com/discourse/discourse-encrypt.git
      - git clone https://github.com/discourse/discourse-footnote.git
      - git clone https://github.com/discourse/discourse-github.git
      - git clone https://github.com/discourse/discourse-graphviz.git
      - git clone https://github.com/discourse/discourse-math.git
      - git clone https://github.com/discourse/discourse-openid-connect.git
      - git clone https://github.com/discourse/discourse-policy.git
      - git clone https://github.com/discourse/discourse-shared-edits.git
      - git clone https://github.com/discourse/discourse-solved.git
      - git clone https://github.com/discourse/discourse-spoiler-alert.git
3 Mi Piace

Ciao Tobias,
Grazie per la lista!

Ops, ho aggiornato tramite il pannello di amministrazione.
Poi ho ripristinato. Fallito.
Poi ho aggiunto i plugin all’app.yml. Poi ho eseguito il rebuilder.
Poi ho ripristinato. Riuscito.
Tuttavia, sullo stesso errore oops nel frontend!

Aarrrgh.

2 Mi Piace

Ci stiamo avvicinando sempre di più! :snail:

Puoi controllare /logs e dirmi se vedi qualche errore? Se sì, incolla l’errore qui.

2 Mi Piace

OK, I have now also finished a backup/restore from a Teams site to self-hosted, with uploads and all plugins in app.yml, and am getting the same 500 error when looking at latest. I am able to access the admin section.

I see an error in the log that looks relevant. It seems to be about s3 but in the admin settings, s3 is clearly disabled on my self-hosted site.

See log:

/var/www/discourse/app/models/global_setting.rb:107:in `s3_bucket_name'
/var/www/discourse/app/models/site_setting.rb:157:in `absolute_base_url'
/var/www/discourse/app/models/upload.rb:186:in `secure_media_url_from_upload_url'
/var/www/discourse/lib/url_helper.rb:60:in `secure_proxy_without_cdn'
/var/www/discourse/lib/url_helper.rb:83:in `cook_url'
/var/www/discourse/app/models/topic_link.rb:274:in `ensure_entry_for'
/var/www/discourse/app/models/topic_link.rb:128:in `block (2 levels) in extract_from'
activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction'
activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in `block in within_new_transaction'
activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'
activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in `within_new_transaction'
activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'
activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in `transaction'
/var/www/discourse/app/models/topic_link.rb:126:in `block in extract_from'
/var/www/discourse/app/models/topic_link.rb:124:in `each'
/var/www/discourse/app/models/topic_link.rb:124:in `extract_from'
/var/www/discourse/app/models/post.rb:691:in `rebake!'
/var/www/discourse/app/models/post.rb:645:in `block in rebake_old'
/var/www/discourse/app/models/post.rb:639:in `each'
/var/www/discourse/app/models/post.rb:639:in `rebake_old'
/var/www/discourse/app/jobs/scheduled/periodical_updates.rb:29:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
/var/www/discourse/app/jobs/base.rb:279:in `perform'
mini_scheduler-0.13.0/lib/mini_scheduler/manager.rb:93:in `process_queue'
mini_scheduler-0.13.0/lib/mini_scheduler/manager.rb:37:in `block (2 levels) in initialize'

And also, I attempted a rebake of posts, and saw the same error there. Here’s the full log:

Summary

root@tobiastest-app:/var/www/discourse# rake posts:rebake
Rebaking post markdown for ‘default’
97 / 2590 ( 3.7%)
Failed to rebake (topic_id: 6527, post_id: 8052)
undefined method downcase' for nil:NilClass /var/www/discourse/app/models/global_setting.rb:107:in s3_bucket_name’
/var/www/discourse/app/models/site_setting.rb:157:in absolute_base_url' /var/www/discourse/app/models/upload.rb:186:in secure_media_url_from_upload_url’
/var/www/discourse/lib/url_helper.rb:60:in secure_proxy_without_cdn' /var/www/discourse/lib/url_helper.rb:83:in cook_url’
/var/www/discourse/app/models/topic_link.rb:274:in ensure_entry_for' /var/www/discourse/app/models/topic_link.rb:128:in block (2 levels) in extract_from’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in block in transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in block in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in block in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in transaction’
/var/www/discourse/app/models/topic_link.rb:126:in block in extract_from' /var/www/discourse/app/models/topic_link.rb:124:in each’
/var/www/discourse/app/models/topic_link.rb:124:in extract_from' /var/www/discourse/app/models/post.rb:691:in rebake!’
/var/www/discourse/lib/tasks/posts.rake:140:in rebake_post' /var/www/discourse/lib/tasks/posts.rake:125:in block (2 levels) in rebake_posts’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each’
/var/www/discourse/lib/tasks/posts.rake:124:in block in rebake_posts' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step' /var/www/discourse/lib/tasks/posts.rake:123:in rebake_posts’
/var/www/discourse/lib/tasks/posts.rake:107:in block in rebake_posts_all_sites' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in with_connection’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:90:in each_connection' /var/www/discourse/lib/tasks/posts.rake:106:in rebake_posts_all_sites’
/var/www/discourse/lib/tasks/posts.rake:7:in block in <main>' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in block in execute’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in execute’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in block in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in invoke’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in invoke_task' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block (2 levels) in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in run_with_threads' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:83:in block in run' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in standard_exception_handling’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:80:in run' bin/rake:13:in <top (required)>’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in load' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in kernel_load’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in run' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in exec’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in dispatch’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in start’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in block in <top (required)>' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in with_friendly_errors’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in <top (required)>' /usr/local/bin/bundle:23:in load’
/usr/local/bin/bundle:23:in <main>' 148 / 2590 ( 5.7%) Failed to rebake (topic_id: 6527, post_id: 7981) undefined method downcase’ for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in s3_bucket_name' /var/www/discourse/app/models/site_setting.rb:157:in absolute_base_url’
/var/www/discourse/app/models/upload.rb:186:in secure_media_url_from_upload_url' /var/www/discourse/lib/url_helper.rb:60:in secure_proxy_without_cdn’
/var/www/discourse/lib/url_helper.rb:83:in cook_url' /var/www/discourse/app/models/topic_link.rb:274:in ensure_entry_for’
/var/www/discourse/app/models/topic_link.rb:128:in block (2 levels) in extract_from' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in block in transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in block in within_new_transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in block in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in handle_interrupt' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in within_new_transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in transaction' /var/www/discourse/app/models/topic_link.rb:126:in block in extract_from’
/var/www/discourse/app/models/topic_link.rb:124:in each' /var/www/discourse/app/models/topic_link.rb:124:in extract_from’
/var/www/discourse/app/models/post.rb:691:in rebake!' /var/www/discourse/lib/tasks/posts.rake:140:in rebake_post’
/var/www/discourse/lib/tasks/posts.rake:125:in block (2 levels) in rebake_posts' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each' /var/www/discourse/lib/tasks/posts.rake:124:in block in rebake_posts’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step’
/var/www/discourse/lib/tasks/posts.rake:123:in rebake_posts' /var/www/discourse/lib/tasks/posts.rake:107:in block in rebake_posts_all_sites’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in with_connection' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:90:in each_connection’
/var/www/discourse/lib/tasks/posts.rake:106:in rebake_posts_all_sites' /var/www/discourse/lib/tasks/posts.rake:7:in block in ’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in block in execute' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in each’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in execute' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in block in invoke_with_call_chain’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in invoke_with_call_chain’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in invoke' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in invoke_task’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block (2 levels) in top_level' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in each’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block in top_level' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in run_with_threads’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in top_level' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:83:in block in run’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in standard_exception_handling' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:80:in run’
bin/rake:13:in <top (required)>' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in load’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in kernel_load' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in run’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in exec' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in dispatch' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in start' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in block in <top (required)>’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in with_friendly_errors' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in <top (required)>’
/usr/local/bin/bundle:23:in load' /usr/local/bin/bundle:23:in
252 / 2590 ( 9.7%)
Failed to rebake (topic_id: 6527, post_id: 7850)
undefined method downcase' for nil:NilClass /var/www/discourse/app/models/global_setting.rb:107:in s3_bucket_name’
/var/www/discourse/app/models/site_setting.rb:157:in absolute_base_url' /var/www/discourse/app/models/upload.rb:186:in secure_media_url_from_upload_url’
/var/www/discourse/lib/url_helper.rb:60:in secure_proxy_without_cdn' /var/www/discourse/lib/url_helper.rb:83:in cook_url’
/var/www/discourse/app/models/topic_link.rb:274:in ensure_entry_for' /var/www/discourse/app/models/topic_link.rb:128:in block (2 levels) in extract_from’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in block in transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in block in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in block in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in transaction’
/var/www/discourse/app/models/topic_link.rb:126:in block in extract_from' /var/www/discourse/app/models/topic_link.rb:124:in each’
/var/www/discourse/app/models/topic_link.rb:124:in extract_from' /var/www/discourse/app/models/post.rb:691:in rebake!’
/var/www/discourse/lib/tasks/posts.rake:140:in rebake_post' /var/www/discourse/lib/tasks/posts.rake:125:in block (2 levels) in rebake_posts’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each’
/var/www/discourse/lib/tasks/posts.rake:124:in block in rebake_posts' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step' /var/www/discourse/lib/tasks/posts.rake:123:in rebake_posts’
/var/www/discourse/lib/tasks/posts.rake:107:in block in rebake_posts_all_sites' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in with_connection’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:90:in each_connection' /var/www/discourse/lib/tasks/posts.rake:106:in rebake_posts_all_sites’
/var/www/discourse/lib/tasks/posts.rake:7:in block in <main>' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in block in execute’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in execute’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in block in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in invoke’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in invoke_task' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block (2 levels) in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in run_with_threads' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:83:in block in run' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in standard_exception_handling’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:80:in run' bin/rake:13:in <top (required)>’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in load' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in kernel_load’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in run' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in exec’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in dispatch’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in start’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in block in <top (required)>' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in with_friendly_errors’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in <top (required)>' /usr/local/bin/bundle:23:in load’
/usr/local/bin/bundle:23:in <main>' 523 / 2590 ( 20.2%) Failed to rebake (topic_id: 6448, post_id: 7559) undefined method downcase’ for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in s3_bucket_name' /var/www/discourse/app/models/site_setting.rb:157:in absolute_base_url’
/var/www/discourse/app/models/upload.rb:186:in secure_media_url_from_upload_url' /var/www/discourse/lib/url_helper.rb:60:in secure_proxy_without_cdn’
/var/www/discourse/lib/url_helper.rb:83:in cook_url' /var/www/discourse/app/models/topic_link.rb:274:in ensure_entry_for’
/var/www/discourse/app/models/topic_link.rb:128:in block (2 levels) in extract_from' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in block in transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in block in within_new_transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in block in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in handle_interrupt' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in within_new_transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in transaction' /var/www/discourse/app/models/topic_link.rb:126:in block in extract_from’
/var/www/discourse/app/models/topic_link.rb:124:in each' /var/www/discourse/app/models/topic_link.rb:124:in extract_from’
/var/www/discourse/app/models/post.rb:691:in rebake!' /var/www/discourse/lib/tasks/posts.rake:140:in rebake_post’
/var/www/discourse/lib/tasks/posts.rake:125:in block (2 levels) in rebake_posts' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each' /var/www/discourse/lib/tasks/posts.rake:124:in block in rebake_posts’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step’
/var/www/discourse/lib/tasks/posts.rake:123:in rebake_posts' /var/www/discourse/lib/tasks/posts.rake:107:in block in rebake_posts_all_sites’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in with_connection' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:90:in each_connection’
/var/www/discourse/lib/tasks/posts.rake:106:in rebake_posts_all_sites' /var/www/discourse/lib/tasks/posts.rake:7:in block in ’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in block in execute' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in each’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in execute' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in block in invoke_with_call_chain’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in invoke_with_call_chain’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in invoke' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in invoke_task’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block (2 levels) in top_level' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in each’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block in top_level' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in run_with_threads’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in top_level' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:83:in block in run’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in standard_exception_handling' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:80:in run’
bin/rake:13:in <top (required)>' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in load’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in kernel_load' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in run’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in exec' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in dispatch' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in start' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in block in <top (required)>’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in with_friendly_errors' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in <top (required)>’
/usr/local/bin/bundle:23:in load' /usr/local/bin/bundle:23:in
1437 / 2590 ( 55.5%)
Failed to rebake (topic_id: 5684, post_id: 6112)
undefined method downcase' for nil:NilClass /var/www/discourse/app/models/global_setting.rb:107:in s3_bucket_name’
/var/www/discourse/app/models/site_setting.rb:157:in absolute_base_url' /var/www/discourse/app/models/upload.rb:186:in secure_media_url_from_upload_url’
/var/www/discourse/lib/url_helper.rb:60:in secure_proxy_without_cdn' /var/www/discourse/lib/url_helper.rb:83:in cook_url’
/var/www/discourse/app/models/topic_link.rb:274:in ensure_entry_for' /var/www/discourse/app/models/topic_link.rb:128:in block (2 levels) in extract_from’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in block in transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:310:in block in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in block (2 levels) in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in block in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in handle_interrupt’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in synchronize' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/transaction.rb:308:in within_new_transaction’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in transaction' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/transactions.rb:209:in transaction’
/var/www/discourse/app/models/topic_link.rb:126:in block in extract_from' /var/www/discourse/app/models/topic_link.rb:124:in each’
/var/www/discourse/app/models/topic_link.rb:124:in extract_from' /var/www/discourse/app/models/post.rb:691:in rebake!’
/var/www/discourse/lib/tasks/posts.rake:140:in rebake_post' /var/www/discourse/lib/tasks/posts.rake:125:in block (2 levels) in rebake_posts’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.3.2/lib/active_record/relation/delegation.rb:88:in each’
/var/www/discourse/lib/tasks/posts.rake:124:in block in rebake_posts' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.3.2/lib/active_support/core_ext/range/each.rb:14:in step' /var/www/discourse/lib/tasks/posts.rake:123:in rebake_posts’
/var/www/discourse/lib/tasks/posts.rake:107:in block in rebake_posts_all_sites' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in with_connection’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:90:in each_connection' /var/www/discourse/lib/tasks/posts.rake:106:in rebake_posts_all_sites’
/var/www/discourse/lib/tasks/posts.rake:7:in block in <main>' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in block in execute’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:281:in execute’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:219:in block in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in synchronize’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:199:in invoke_with_call_chain' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/task.rb:188:in invoke’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:160:in invoke_task' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block (2 levels) in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in each' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:116:in block in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:125:in run_with_threads' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:110:in top_level’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:83:in block in run' /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:186:in standard_exception_handling’
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/lib/rake/application.rb:80:in run' bin/rake:13:in <top (required)>’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in load' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in kernel_load’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in run' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in exec’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in run' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in dispatch' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in dispatch’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in start’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:49:in block in <top (required)>' /usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in with_friendly_errors’
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.16/exe/bundle:37:in <top (required)>' /usr/local/bin/bundle:23:in load’
/usr/local/bin/bundle:23:in `’
2590 / 2590 (100.0%)
2590 posts done!

I had a look on meta for some of these errors and it seems to have come up before, but I did not see any obvious resolutions. I’m sure the solution will be obvious to someone!

3 Mi Piace

Qualsiasi soluzione o idea su come possiamo affrontare questo problema? Esiste un modo diverso di backup e ripristino che potrebbe essere utilizzato?

:mega: Chiamo la comunità di Discourse!

1 Mi Piace

Ciao Yash! Hai visto questa richiesta che ho inviato sopra?

Sarebbe utile se potessi confermare se gli errori che stai riscontrando sono gli stessi che sto vedendo io, o se il tuo problema è diverso. A quanto pare c’è un bug nella migrazione da Teams all’hosting self-hosted.

Ci vorrà un po’ di tempo per risolvere la questione, scusa! Spero che tu non sia troppo disturbato, ma spero anche che il processo di apprendimento sia positivo mentre intraprendi il tuo viaggio nell’hosting self-hosted. All’inizio c’è molto da imparare, ma una volta che lo conosci sarai più autonomo. :rocket:

Se questa situazione di stallo è un problema per il tuo team, puoi sempre tornare all’hosting di Discourse per Teams! :angel: Oppure puoi mantenere l’abbonamento a Discourse per Teams per un po’ di tempo in più invece di cancellarlo subito, e poi effettuare la migrazione più tardi, quando avremo sistemato i dettagli - fammi sapere. Puoi anche chiedere aiuto a pagamento dalla comunità in Marketplace.

1 Mi Piace

Ops, scusa.
Ecco i /log

C’è una stima di quando il team di Discourse potrà esaminare il problema e risolverlo? Questo ci aiuterebbe a valutare le alternative.

1 Mi Piace

Fantastico! È utile sapere che il problema che stai riscontrando è lo stesso che sono riuscito a replicare dal mio lato. :+1:

Abbiamo prorogato per un po’ di tempo l’hosting di Discourse for Teams, così puoi continuare a usarlo gratuitamente finché non individuiamo ed eliminiamo il bug. A quel punto potrai disattivare l’hosting, scaricare l’ultimo backup e ripristinarlo sul tuo sito auto-ospitato. Spero che questa soluzione vada bene per te. :hugs:

Grazie per essere stato un paziente e disponibile cavia durante questo processo!

3 Mi Piace

Grazie, Tobias! Apprezzo il gesto! :slight_smile: Che la forza sia con te!

2 Mi Piace

@neil ha trovato la soluzione. Ottimo lavoro di investigazione! :male_detective:

Da riga di comando:

cd /var/discourse
./launcher enter app
rails c
Upload.update_all(secure: false)

Questo ha riportato il sito in funzione per me. @biyaniyash, prova a eseguirlo e facci sapere come va.

La spiegazione è che, su Discourse for Teams, è abilitato Secure Uploads, il quale richiede S3. Sul sito self-hosted appena ripristinato, i media sicuri sono disabilitati e i caricamenti sono archiviati localmente sul server. Tuttavia, tutti i caricamenti esistenti dal backup erano già contrassegnati come sicuri, causando errori.

3 Mi Piace

Provo a fare questo. Sto facendo qualcosa di sbagliato?

Cosa devo digitare dopo l’ultimo comando che mi hai dato?

1 Mi Piace

Nope! Non stai facendo nulla di sbagliato e hai finito. :white_check_mark:

= 270 indica quanti post sono stati elaborati. Ora puoi digitare exit per uscire da Rails, e poi exit di nuovo per uscire dal contenitore Docker.

Ora vai alla home page del tuo forum, vedi cosa appare e riferiscici qui!

2 Mi Piace

SIAMO DI NUOVO ONLINE! Evviva! Grazie a @neil e a @tobiaseigen e a tutti gli altri che hanno fatto parte della nostra piccola discussione!

Per tutti voi, ecco il riepilogo della soluzione:

  1. Assicurati che il backup del team includa SQL e caricamenti di file.
  2. Avvia il sito self-hosted su DO seguendo queste istruzioni discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub [Nota: non è stato testato con il droplet one-click del Marketplace DO]
  3. Vai su /admin/site_settings/category/all_results?filter=s3 nel tuo nuovo sito e disattiva tutto ciò che riguarda S3.
  4. Aggiorna Discourse all’ultima versione. [Consigliato: usa il comando ./launcher rebuild app]
  5. Installa tutti i plugin (controlla con il team di Discourse quali sono gli ultimi plugin disponibili o visita la pagina dei plugin del tuo team)
    " Sembra che ci sia uno script di migrazione dei plugin che richiede l’installazione di almeno i plugin assign, policy e solved. Ecco l’elenco completo dei plugin inclusi attualmente in Teams, soggetto a modifiche future. Puoi semplicemente copiare e incollare questo elenco nel file app.yml sotto la riga che fa riferimento al gestore Docker. Assicurati di rispettare esattamente l’indentazione! Si tratta di plugin ufficiali, quindi è sicuro installarli anche se decidi di non utilizzarli. Ci sono alcuni plugin aggiuntivi non inclusi qui che forniscono la barra laterale Teams e funzionalità specifiche per l’hosting di Teams.
      - git clone https://github.com/discourse/discourse-assign.git
      - git clone https://github.com/discourse/discourse-cakeday.git
      - git clone https://github.com/discourse/discourse-calendar.git
      - git clone https://github.com/discourse/discourse-chat-integration.git
      - git clone https://github.com/discourse/discourse-checklist.git
      - git clone https://github.com/discourse/discourse-code-review.git
      - git clone https://github.com/discourse/discourse-docs.git
      - git clone https://github.com/discourse/discourse-encrypt.git
      - git clone https://github.com/discourse/discourse-footnote.git
      - git clone https://github.com/discourse/discourse-github.git
      - git clone https://github.com/discourse/discourse-graphviz.git
      - git clone https://github.com/discourse/discourse-math.git
      - git clone https://github.com/discourse/discourse-openid-connect.git
      - git clone https://github.com/discourse/discourse-policy.git
      - git clone https://github.com/discourse/discourse-shared-edits.git
      - git clone https://github.com/discourse/discourse-solved.git
      - git clone https://github.com/discourse/discourse-spoiler-alert.git
  1. Ripristina il tuo backup.
  2. Dalla riga di comando:
cd /var/discourse
./launcher enter app
rails c
Upload.update_all(secure: false)
  1. E sei a posto! Tutto dovrebbe essere in ordine!
3 Mi Piace

Tobias, solo per tua informazione: ho provato a eseguire un altro backup sul sito Teams. Il problema del backup non è ancora stato risolto. Potresti voler correggere quel bug che non include i caricamenti di file nel backup.

1 Mi Piace

Bene! Grazie per il riepilogo dei passaggi, Yash! Vorresti pubblicarlo in un nuovo argomento per chi sta cercando di passare da Teams all’auto-hosting? Altrimenti, lo farò io.

Non supportiamo affatto alcun metodo di installazione diverso dalle istruzioni ufficiali disponibili su discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. Il motivo è che non possiamo essere certi che gli altri metodi funzionino e la risoluzione dei problemi diventa troppo difficile o addirittura impossibile.

Questo passaggio non sarà più necessario in futuro, una volta che la correzione realizzata da @neil sarà stata unita al codice principale. Potrebbero volerci alcune settimane.

In realtà, questa funzionalità non è rotta e funziona come previsto. Come spiegato nella pagina, devi richiederci i backup completi. Non pubblichiamo questa pagina su Discourse for Teams perché non c’è bisogno che i clienti conservino i propri backup: vengono eseguiti automaticamente ogni 12 ore per tutti i clienti in hosting e archiviati in una sede esterna. Nel caso in cui annulliate il vostro hosting, vi forniamo un backup completo con i file caricati che potete scaricare, così da poter ripartire altrove secondo le vostre esigenze.

2 Mi Piace

Ciao Tobias,

Grazie per la chiarificazione!

Sto ancora cercando di orientarmi in questa comunità. Dovrei pubblicare questo messaggio nella sezione Hosting? Non riesco a pubblicare nella categoria How-To. Immagino che sia mantenuta come una risorsa ufficiale simile a un wiki. Se è più facile, potresti pubblicarlo tu.

Solo il mio parere sui backup.

Penso che, se lo spieghi chiaramente nella pagina, sarebbe sicuramente d’aiuto. Da quanto ho capito, Discourse è costruito sulla trasparenza e sull’autenticità, e questo si inserirebbe perfettamente nella sezione “piena trasparenza”.

Comunque, dato che hai disabilitato completamente i backup per i team dalla pagina di amministrazione clienti, alla fine ti contatteranno e sarà lì che potrai spiegare i dettagli.

2 Mi Piace

Procederò a pubblicare l’argomento con le istruzioni: hai ragione, servono privilegi ™ per pubblicare lì. Quando lo farò, condividerò il link qui e apprezzerei una tua revisione.

Valuterò anche la pagina dei backup per vedere come migliorarla, rendendo più trasparente ciò che accade, specialmente per i clienti di hosting. Per i siti self-hosted, la funzionalità di backup/ripristino è piuttosto semplice. Devi solo fare attenzione a non conservare troppi backup localmente, altrimenti rischi di esaurire lo spazio di archiviazione!

5 Mi Piace