La restauration depuis une sauvegarde échoue en raison de la migration S3

J’ai essayé de migrer mon instance Discourse vers un nouveau serveur, mais la restauration via l’interface utilisateur et la CLI a échoué pendant l’opération de restauration. Cela est lié à la migration S3.

J’avais également activé ces paramètres dans la console Rails :

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

Le journal pertinent de l’échec était le suivant :

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.

Il existe un rapport similaire à votre recherche. Je pense que la solution consistait à désactiver les téléchargements S3 lors de la restauration ?

Merci @pfaffman. Je vais essayer ça.

Connaissez-vous une méthode en ligne de commande (rails console) pour désactiver l’envoi sur S3 ?

Les uploads vers S3 ont été désactivés pendant la restauration. Cela a quand même échoué.

C’est un problème connu. En attendant, vous pouvez désactiver temporairement le paramètre de site enable_s3_uploads avant de créer la sauvegarde. Vous pourrez le réactiver sur le nouveau serveur après la restauration.

Merci ! Oui, j’ai désactivé l’envoi vers S3 avant de faire la sauvegarde, et la restauration s’est ensuite déroulée avec succès.

Bonjour,

Que faire si une sauvegarde a été effectuée alors qu’elle était activée :slight_smile:

J’ai résolu le problème :

J’ai ouvert dump.sql avec le programme EmEditor et recherché enable_s3_uploads, S3, et j’ai remplacé tous les « t » par « f » et tous les « true » par « false ».

Restauration réussie :slight_smile:

Eh bien, dans ce cas, vous devrez vous salir les mains. Désolé pour ça. Je prévois de commencer à refactoriser et à améliorer les sauvegardes et restaurations la semaine prochaine, mais cela peut prendre un certain temps avant que tout soit de nouveau parfait.

C’est formidable ! J’allais justement suggérer exactement ces étapes. :wink:

Pour ceux qui liront ceci dans le futur : si vous devez éditer le fichier dump.sql (qui peut être assez volumineux), je recommande Scintilla and SciTE comme éditeur. Il gère ces fichiers volumineux sans problème.