OK, quindi, l’ho capito dopo un’immersione profonda nel DB. Sembrano avanzi (71 upload) dall’ambiente S3 originale, ormai defunto da tempo (o meglio, in questo caso, ambiente S3 disponibile ma non utilizzato principalmente, perché non sarebbe stato conveniente).
Ho finito per fare questo:
Dal server di origine:
./launcher enter app
sudo -u postgres psql discourse
SELECT url FROM uploads WHERE url NOT LIKE '%ExpectedS3DomainGoesHere%'
(sostituisci ExpectedS3DomainGoesHere con l’URL effettivo che utilizzi per la tua configurazione S3)
Questo ti fornirà gli URL su cui lavorare, perché dobbiamo fare alcune cose.Dove gli URL provengono da bucket più vecchi su URL diversi, utilizza il client Amazon S3 (o il client del tuo backend di archiviazione S3) e:
a. Sincronizza i bucket con URL imprevisti, se disponibili, sullo storage locale.
b. Sincronizza gli elementi da locale al nuovo bucket.
discourse remap VECCHIO-URL-DAL-DB NUOVO-URL-DAL-DB
Sebbene sia stato suggerito qui di utilizzare DbHelper.remap, la funzione remap di discourse ha funzionato bene.Assicurati che i dati siano migrati.
rails uploads:migrate_to_s3Tempo di rebake!
rails posts:rebakeBackup del sito di nuovo sulla macchina/server di ‘origine’. Scarica quell’ultimo aggiornamento.
Dal nuovo server di destinazione:
Configura Discourse come previsto, copia app.yml e simili dal server di origine al nuovo server in
/var/discourse/containers/per assicurarti che la ricostruzione colpisca i plugin appropriati, ecc. necessari.
Assicurati di commentare tutte le vociDISCOURSE_BACKUP_LOCATION: s3in app.yml, se stai lavorando con copie di backup locali. Ho avuto alcuni problemi con S3 che si comportava in modo strano con file di backup troncati, quindi ho optato per l’approccio locale per un ripristino.Segui i passaggi in Restore a backup from the command line per caricare il backup sul tuo server e ripristinarlo. Inclusi i passaggi di ricostruzione.
È stato doloroso per me risolverlo, ma è stato risolto una volta che ho approfondito la tabella degli upload nel DB. MA, questo sembra aver funzionato, quindi…