Estou tentando migrar todos os dados do S3 de volta para o meu servidor. No entanto, rake uploads:migrate_from_s3 retorna o erro Você deve desabilitar os uploads do S3 antes de executar essa tarefa. Então, desmarquei a opção habilitar uploads S3 nas configurações do Discourse e também adicionei DISCOURSE_USE_S3: false ao arquivo app.yml. Mesmo assim, sem sucesso, o mesmo erro persiste.
O que é uma variável de ambiente S3? No meu caso, DISCOURSE_USE_S3 é mantido no ambiente.
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
UNICORN_WORKERS: 2
## TODO: O nome de domínio ao qual esta instância do Discourse responderá
DISCOURSE_HOSTNAME: engineersasylum.com
## Descomente se quiser que o contêiner seja iniciado com o mesmo
## nome de host (opção -h) especificado acima (padrão "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: Lista de e-mails separados por vírgula que serão definidos como administradores e desenvolvedores
## no cadastro inicial, exemplo 'usuario1@exemplo.com,usuario2@exemplo.com'
DISCOURSE_DEVELOPER_EMAILS: 'praveen369gen@gmail.com'
# Configuração do S3
DISCOURSE_USE_S3: false
DISCOURSE_S3_REGION: ap-south-1
DISCOURSE_S3_ACCESS_KEY_ID: AKxxxxxxxxxxxxxxxxxxxxxDQ
DISCOURSE_S3_SECRET_ACCESS_KEY: QWVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLigGs
DISCOURSE_S3_BUCKET: enginxxxxxxxxxxket
DISCOURSE_S3_BACKUP_BUCKET: enginxxxxxxxxxxxxcket
DISCOURSE_BACKUP_LOCATION: s3
… e não se esqueça, @Pravi, de que você deve reconstruir seu contêiner (aplicação) após alterar a maioria das variáveis no seu arquivo yml. Algumas podem ser atualizadas apenas parando e iniciando o contêiner; mas na dúvida, reconstrua o contêiner (aplicação) sempre que fizer uma alteração no seu yml.
Adicionei ‘local’ ao local de backup, depois recriei o container e tentei migrar, mas ainda não tive sorte. Está me dizendo: Você deve desativar os uploads para S3 antes de executar essa tarefa
Depois de reconstruir com DISCOURSE_USE_S3=false no arquivo yml, você executou a tarefa rake e ainda aparece a mensagem “Você deve desativar os uploads S3”? Você também foi ao painel de administração e desativou o S3 lá?
Sim, adicionei DISCOURSE_USE_S3=false ao app.yml, depois recriei o container e executei a tarefa rake, mas ainda assim estou recebendo a mesma saída. Sim, desabilitei o upload na página de administração.
Não sei como o último pode ser verdadeiro se você definiu a variável de ambiente como falsa e fez o rebuild. As configurações do SiteSetting vêm do seu painel de administração, enquanto a GlobalSettings é definida através do app.yml.
Desativar DISCOURSE_USE_S3 e DISCOURSE_S3_BUCKET me gera este erro:
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrando uploads do S3 para armazenamento local para 'default'...
rake aborted!
NoMethodError: método `downcase` não definido para 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/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(Veja o rastreamento completo executando a tarefa com --trace)
Atualização:
Antes de desativar DISCOURSE_USE_S3 e DISCOURSE_S3_BUCKET:
Eu também tentei isso. Comentei tudo, exceto DISCOURSE_USE_S3: false, e o mesmo erro anterior apareceu novamente.
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrando uploads do S3 para armazenamento local para 'default'...
rake aborted!
NoMethodError: método `downcase' não definido para 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/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(Veja o rastreamento completo executando a tarefa com --trace)
O SiteSetting e o GlobalSettings estão desativados.