OK, então, descobri depois de mergulhar fundo no banco de dados. Parece que sobraram (71 uploads) do ambiente S3 original, que já não existe há muito tempo (ou, neste caso, um ambiente S3 disponível, mas não usado principalmente, porque não seria econômico).
Acabei fazendo o seguinte:
Do Servidor de Origem:
./launcher enter app
sudo -u postgres psql discourse
SELECT url FROM uploads WHERE url NOT LIKE '%ExpectedS3DomainGoesHere%'
(substitua o ExpectedS3DomainGoesHere pelo URL real que você usa para sua configuração S3)
Isso obterá os URLs para você trabalhar, porque precisamos fazer algumas coisas.Onde os URLs são de buckets mais antigos em URLs diferentes, use o cliente Amazon S3 (ou o cliente para seu backend de armazenamento S3) e:
a. Sincronize os buckets com URLs inesperados, se disponíveis, para o armazenamento local.
b. Sincronize os itens do Local para o novo Bucket.
discourse remap OLD-URL-FROM-DB NEW-URL-FROM-DB
Embora tenha sido sugerido aqui usar DbHelper.remap, a função remap do discourse funcionou bem.Certifique-se de que os dados foram migrados.
rails uploads:migrate_to_s3Hora de rebater!
rails posts:rebakeFaça backup do site novamente na máquina/servidor de ‘origem’. Baixe essa última atualização.
Do Novo Servidor de Destino:
Configure o Discourse como esperado, copie o app.yml e outros do servidor de origem para o novo servidor em
/var/discourse/containers/para garantir que a reconstrução atinja os plugins corretos, etc., necessários.
Certifique-se de comentar quaisquer entradasDISCOURSE_BACKUP_LOCATION: s3no app.yml, se você estiver trabalhando com cópias de backup locais. Tive alguns problemas com o S3 sendo estranho com arquivos de backup sendo truncados, então optei pela abordagem local para uma restauração.Siga as etapas em Restore a backup from the command line para colocar o backup em seu servidor e restaurá-lo. Incluindo as etapas de reconstrução.
Isso foi doloroso para eu resolver, mas foi resolvido depois que mergulhei fundo na tabela de uploads no banco de dados. MAS, isso parece ter funcionado, então…