Ripristino dal backup fallisce a causa della migrazione S3

Ho tentato di migrare la mia istanza Discourse su un nuovo server, ma il ripristino tramite UI e CLI fallisce durante l’operazione di restore. Il problema è legato alla migrazione S3.

Avevo anche abilitato queste impostazioni nella console rails:

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

Il log rilevante relativo al fallimento è il seguente:

Remapping '//thinnal.s3.dualstack.us-east-1.amazonaws.com/' to '/uploads/default/'
incoming_emails=2
optimized_images=3851
post_revisions=86
posts=618
stylesheet_cache=10
topic_links=107
topics=150
uploads=419
user_histories=20
Migrating uploads to S3...
Checking if default already migrated...
1971 of 1977 uploads are not migrated to S3. S3 migration failed for db 'default'.
266 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.
Looking for missing uploads on: default

0 post uploads are missing.

No posts require rebaking
Migrating uploads to S3 for 'default'...
Some uploads were not migrated to the new scheme. Please run these commands in the rails console

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)
Restore process was cancelled!
Trying to rollback...
Rolling back...
Cleaning stuff up...
Dropping function from the discourse_functions schema
Removing tmp '/var/www/discourse/tmp/restores/default/2019-09-02-140750' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

C’è un rapporto simile alla tua ricerca. Penso che la soluzione fosse disattivare i caricamenti su S3 quando esegui il ripristino?

Grazie @pfaffman. Provo così.

Sai se esiste un modo tramite riga di comando (rails console) per disabilitare il caricamento su S3?

Il caricamento su S3 è stato disabilitato durante il ripristino. È comunque fallito.

Questo è un problema noto. Come soluzione temporanea, puoi disabilitare temporaneamente l’impostazione del sito enable_s3_uploads prima di creare il backup. Puoi riattivarla sul nuovo server dopo il ripristino.

Grazie! Sì, ho disabilitato il caricamento su S3 prima di eseguire il backup, e quindi il ripristino è andato a buon fine.

Ciao,

Cosa fare se è stato eseguito un backup mentre era attivo :slight_smile:

L’ho risolto;

Ho aperto dump.sql con il programma EmEditor e ho cercato enable_s3_uploads, S3 e ho sostituito tutti i “t” con “f” e tutti i “true” con “false”.

Ripristino riuscito :slight_smile:

Beh, allora dovrai metterti le mani in pasta. Mi dispiace per questo. Ho intenzione di iniziare a rifattorizzare e migliorare i backup e i ripristini la prossima settimana, ma potrebbe volerci un po’ prima che tutto torni alla perfezione.

È fantastico! Stavo per suggerire esattamente quegli stessi passaggi. :wink:

Per chiunque legga questo in futuro: se devi modificare il file dump.sql (che potrebbe essere piuttosto grande), ti consiglio di usare come editor Scintilla and SciTE. Gestisce file di grandi dimensioni senza problemi.