Hoy realicé una prueba de creación de una copia de seguridad completa de un sitio de Teams y su restauración en un sitio autoalojado configurado utilizando discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub . Funcionó. S3 ya estaba deshabilitado y todo funcionó según lo esperado. Era un sitio de prueba pequeño con poco contenido.
Un paso a tener en cuenta para una transición fluida es asegurarse de tener instalados todos los complementos que estaban habilitados en el sitio de Teams. Para encontrar esta lista, debes ir a /admin/plugins en el sitio de Teams y luego consultar aquí en Meta los enlaces a los complementos oficiales en GitHub. A continuación, agrega esos complementos a tu archivo app.yml en tu nuevo sitio autoalojado.
@biyaniyash Creo que el problema que encontraste, del que hablamos por correo electrónico, fue que tus copias de seguridad no contenían las cargas. Ahora tienes el archivo de copia de seguridad correcto con las cargas para usar en la restauración de tu sitio autoalojado. Háganos saber cómo le va y si aprende algo en el proceso.
2 Me gusta
¡Hola comunidad!
Actualizaciones rápidas: Tobias y su equipo pudieron volver a alojar nuestros equipos y respaldar todo el sitio (¡incluidas las subidas!).
Lamentablemente, seguimos encontrando errores al restaurar en el sitio autoalojado. También lo actualicé a la última versión, pero sin éxito. Lo único que falta es instalar los complementos (por ahora no he instalado ningún complemento personalizado en el sitio autoalojado).
He solicitado a Tobias y al equipo de Discourse que compartan el archivo app.yml de mi sitio de equipos o el código que pueda copiar y pegar, y actualmente me están ayudando con eso. Pero me encantaría recibir cualquier idea sobre cómo poner el sitio en funcionamiento, incluso si los complementos llegan más tarde.
La restauración ha fallado.
Aquí está el registro:
[2021-05-11 17:11:08] [INICIADO]
[2021-05-11 17:11:08] ¡'biyaniyash' ha iniciado la restauración!
[2021-05-11 17:11:08] Marcando la restauración como en ejecución...
[2021-05-11 17:11:08] Asegurando que /var/www/discourse/tmp/restores/default/2021-05-11-171108 exista...
[2021-05-11 17:11:08] Copiando el archivo comprimido al directorio temporal...
[2021-05-11 17:11:08] Descomprimiendo el archivo, esto puede tardar un rato...
[2021-05-11 17:11:10] Extrayendo el archivo volcado...
[2021-05-11 17:11:10] Validando metadatos...
[2021-05-11 17:11:10] Versión actual: 20210420015635
[2021-05-11 17:11:10] Versión restaurada: 20210429154322
[2021-05-11 17:11:10] EXCEPCIÓN: Estás intentando restaurar una versión más reciente del esquema. ¡Deberías migrar primero!
[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] Intentando revertir...
[2021-05-11 17:11:10] No fue necesario revertir
[2021-05-11 17:11:10] Limpiando...
[2021-05-11 17:11:10] Eliminando el directorio temporal '/var/www/discourse/tmp/restores/default/2021-05-11-171108'...
[2021-05-11 17:11:10] Marcando la restauración como finalizada...
[2021-05-11 17:11:10] Notificando a 'biyaniyash' sobre el final de la restauración...
3 Me gusta
Esta línea en tu registro parece ser la clave:
[2021-05-11 17:11:10] EXCEPCIÓN: Estás intentando restaurar una versión más reciente del esquema. ¡Primero debes realizar la migración!
No soy un experto en esto, pero creo que necesitas asegurarte de que la versión de Discourse sea la misma que la de la copia de seguridad.
Solo para confirmar: ¿cuando actualizaste Discourse lo hiciste desde la línea de comandos, verdad? Con el comando ./launcher rebuild app.
2 Me gusta
Parece que hay un script de migración de plugins que requiere que tengas instalados al menos los plugins assign, policy y solved.
Aquí está la lista completa de plugins que incluimos actualmente en Teams, aunque está sujeta a cambios en el futuro. Solo tienes que copiar y pegar esta lista en el archivo app.yml debajo de la línea que hace referencia al gestor de Docker. ¡Asegúrate de que la sangría coincida exactamente! Todos estos son plugins oficiales, por lo que es seguro instalarlos incluso si decides no usarlos. Hay algunos plugins adicionales que no se incluyen aquí y que proporcionan la barra lateral de Teams y funciones específicas para el alojamiento de 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 Me gusta
¡Hola Tobias,
¡Gracias por la lista!
¡Ups! Actualicé a través del panel de administración.
Luego restauré. Falló.
Luego agregué los plugins a app.yml. Luego el rebuilder.
Luego restauré. Exitoso.
¡Sin embargo, el mismo error de «ups» en el frontend!
¡Aaaargh!
2 Me gusta
¡Cada vez más cerca!
¿Puedes revisar /logs y decirme si ves algún error? Si es así, pega el error aquí.
2 Me gusta
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 Me gusta
¿Alguna solución o idea sobre cómo podríamos abordar esto? ¿Existe una forma diferente de hacer copias de seguridad y restaurar que se pueda utilizar?
¡Llamando a la comunidad de Discourse!
1 me gusta
¡Hola Yash! ¿Viste esta solicitud mía de arriba?
Sería de gran ayuda si pudieras confirmar si los errores que estás obteniendo son los mismos que los míos, o si tu problema es diferente. Parece que hay un error al migrar de Teams a autoalojado.
Esto tomará un poco de tiempo para resolver, ¡lo siento! Espero que no te esté causando demasiadas molestias, pero también espero que el proceso de aprendizaje sea positivo a medida que te embarcas en tu viaje de autoalojamiento. Al principio hay bastante que aprender, pero una vez que lo dominas, te sentirás empoderado.
Si estar en esta situación de espera es un problema para tu equipo, siempre puedes volver a Discourse para el alojamiento de Teams. O también puedes pagar tu suscripción a Discourse para Teams un poco más en lugar de cancelarla de inmediato, y realizar la migración más tarde, cuando hayamos solucionado los problemas. Avísame. También puedes solicitar ayuda pagada a la comunidad en Marketplace .
1 me gusta
¡Ups, lo siento!
Aquí están los /logs
¿Hay alguna fecha estimada de cuándo el equipo de Discourse podrá revisar esto y depurar/resolver el problema? Eso ayudaría a decidir sobre las alternativas.
1 me gusta
¡Genial! Es útil saber que el problema que estás experimentando es el mismo que he podido replicar en mi entorno.
Hemos prorrogado tu alojamiento de Discourse for Teams por un tiempo más, por lo que puedes seguir usándolo gratis hasta que encontremos y solucionemos el error. En ese momento, podrás cancelar el alojamiento, obtener la última copia de seguridad y restaurarla en tu sitio autoalojado. Espero que esto te funcione.
¡Gracias por ser un conejillo de indias paciente y dispuesto durante este proceso!
3 Me gusta
¡Gracias, Tobias! ¡Aprecio el gesto! ¡Que la fuerza te acompañe!
2 Me gusta
@neil encontró la solución. ¡Buen trabajo de detective!
Desde la línea de comandos:
cd /var/discourse
./launcher enter app
rails c
Upload.update_all(secure: false)
Esto restauró el sitio para mí. @biyaniyash , por favor pruébalo y cuéntanos cómo te va.
La explicación es que, en Discourse para Equipos, Secure Uploads está activado, lo cual requiere S3. En el sitio autoalojado recién restaurado, los medios seguros están desactivados y las cargas se almacenan localmente en el servidor. Sin embargo, cualquier carga existente desde la copia de seguridad ya estaba marcada como segura, lo que provocó errores.
3 Me gusta
Probando esto. ¿Estoy haciendo algo mal?
¿Qué necesito escribir después del último comando que me has dado?
1 me gusta
¡No! No estás haciendo nada mal, ya has terminado.
El => 270 indica cuántos mensajes se procesaron. Ahora puedes escribir exit para salir de Rails y luego exit de nuevo para salir del contenedor de Docker.
Ahora ve a la página principal de tu foro, mira lo que aparece y ¡avísanos aquí!
2 Me gusta
¡Estamos de vuelta! ¡Wohoo! Gracias a @neil , @tobiaseigen y a todos los demás que han sido parte de nuestra pequeña discusión.
Para todos ustedes, aquí está el resumen de la solución:
Asegúrate de que la copia de seguridad del equipo incluya SQL y cargas de archivos.
Inicia el sitio autoalojado en DO siguiendo estas instrucciones: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub [Ten en cuenta que no se ha probado con el droplet de un clic del Marketplace de DO].
Ve a /admin/site_settings/category/all_results?filter=s3 en tu nuevo sitio y desactiva todo lo relacionado con S3.
Actualiza Discourse a la versión más reciente. [Recomendado: usa el comando ./launcher rebuild app].
Instala todos los plugins (verifica con el equipo de Discourse los plugins más recientes o revisa la página de plugins de tu equipo).
"Parece que hay un script de migración de plugins que requiere que tengas al menos los plugins assign, policy y solved instalados. Aquí está la lista completa de plugins que incluimos actualmente en Teams; esto está sujeto a cambios en el futuro. Puedes simplemente copiar y pegar esta lista en app.yml debajo de la línea que hace referencia al gestor de Docker. ¡Asegúrate de que la sangría coincida exactamente! Todos estos son plugins oficiales, por lo que es seguro instalarlos incluso si decides no usarlos. Hay algunos plugins adicionales no incluidos aquí que proporcionan la barra lateral de Teams y funciones específicas del alojamiento de 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
Restaura tu copia de seguridad.
Desde la línea de comandos:
cd /var/discourse
./launcher enter app
rails c
Upload.update_all(secure: false)
¡Y listo! ¡Todo debería estar en orden!
3 Me gusta
Tobias, solo para que lo sepas: intenté hacer otra copia de seguridad en el sitio de Teams. El problema de la copia de seguridad aún no está resuelto. Quizás quieras parchear ese error que impide incluir las cargas de archivos en la copia de seguridad.
1 me gusta
¡Genial! Gracias por el resumen de los pasos, Yash. ¿Te gustaría publicar esto en un nuevo tema para quienes buscan migrar de Teams a un servidor propio? Si no, lo haré yo.
No ofrecemos soporte para ningún método de instalación que no sean las instrucciones oficiales en discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub . La razón es que no podemos estar seguros de que otros métodos funcionen, y la resolución de problemas se vuelve demasiado difícil o incluso imposible.
Este paso ya no será necesario en el futuro, una vez que se fusione esta corrección que realizó @neil . Podría tomar algunas semanas.
master ← neil-12
merged 05:25PM - 08 Jun 21 UTC
After restoring a database from a site that had secure media configured and disa… bling the secure_media setting, any page with an upload will raise errors. This change will allow the uploads to be loaded from the local files. I'm not sure if this is the correct fix, so someone who knows more about secure media should review.
En realidad, esta funcionalidad no está rota y funciona según lo diseñado. Como se explica en la página, debes solicitarnos copias de seguridad completas. No promocionamos esta página en Discourse for Teams porque los clientes no necesitan realizar sus propias copias de seguridad; estas se realizan automáticamente cada 12 horas para todos los clientes de alojamiento y se almacenan fuera del sitio. En caso de que canceles tu servicio de alojamiento, te proporcionaremos una copia de seguridad completa con las cargas de archivos que podrás descargar para que puedas configurar tu servicio en otro lugar según tus necesidades.
2 Me gusta
¡Hola, Tobias!
Gracias por la aclaración.
Aún me estoy familiarizando con esta comunidad. ¿Debería publicar esto en la sección de Alojamiento? No logro publicar en la categoría de Cómo hacerlo. Supongo que se mantiene como un recurso oficial tipo wiki. Si te resulta más fácil, podrías publicarlo tú mismo.
Solo son mis dos centavos sobre las copias de seguridad.
Creo que si lo explicas claramente en la página, sin duda ayudará. Por lo que puedo ver, Discourse se basa en la transparencia y la autenticidad, y esto encajaría perfectamente en el segmento de “plena divulgación”.
Pero, en cualquier caso, como has desactivado las copias de seguridad por completo en los equipos desde la página de administración del cliente, eventualmente te contactarán y es ahí cuando podrás explicar los detalles finos.
2 Me gusta
Procederé a publicar el tema del tutorial: tienes razón, se requieren privilegios ™ para publicar allí. Cuando lo haga, compartiré el enlace aquí y agradecería tu revisión.
También pensaré en la página de copias de seguridad para ver cómo mejorarla y hacer más transparente lo que sucede, especialmente para los clientes de hosting. Para los sitios autoalojados, la funcionalidad de copia de seguridad y restauración es bastante sencilla. Solo debes tener cuidado de no acumular tantas copias de seguridad locales que te quedes sin espacio de almacenamiento.
5 Me gusta