La restauración desde copia de seguridad falla debido a la migración de S3

Intenté migrar mi instancia de Discourse a un nuevo servidor, pero la restauración mediante la interfaz de usuario y la CLI falló durante la operación de restauración. Esto está relacionado con la migración a S3.

También tenía habilitadas estas configuraciones en la consola de rails:

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

El registro relevante del error fue:

Remapeando '//thinnal.s3.dualstack.us-east-1.amazonaws.com/' a '/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
Migrando archivos adjuntos a S3...
Verificando si 'default' ya fue migrado...
1971 de 1977 archivos adjuntos no están migrados a S3. La migración a S3 falló para la base de datos 'default'.
266 publicaciones no fueron remapeadas a la nueva URL de archivo adjunto de S3. La migración a S3 falló para la base de datos 'default'.
Buscando archivos adjuntos faltantes en: default

0 archivos adjuntos de publicaciones están faltantes.

No se requiere rebakear ninguna publicación
Migrando archivos adjuntos a S3 para 'default'...
Algunos archivos adjuntos no fueron migrados al nuevo esquema. Ejecute estos comandos en la consola de rails:

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)
¡El proceso de restauración fue cancelado!
Intentando revertir...
Revertiendo...
Limpiando...
Eliminando función del esquema discourse_functions
Eliminando directorio tmp '/var/www/discourse/tmp/restores/default/2019-09-02-140750'...
Reanudando sidekiq...
Marcando la restauración como finalizada...
Notificando a 'system' del final de la restauración...
¡Finalizado!
[FALLÓ]
Restauración completada.

Hay un informe similar sobre tu búsqueda. Creo que la solución fue desactivar las cargas en S3 al restaurar.

Gracias @pfaffman. Déjame probar eso.

¿Sabes de alguna forma desde la línea de comandos (consola de Rails) para deshabilitar la carga en S3?

Las cargas a S3 se deshabilitaron durante la restauración. Aún así, falló.

Ese es un problema conocido. Como solución temporal, puedes desactivar temporalmente la configuración del sitio enable_s3_uploads antes de crear la copia de seguridad. Puedes volver a habilitarla en el nuevo servidor después de la restauración.

¡Gracias! Sí, desactivé la subida a S3 antes de realizar la copia de seguridad y luego la restauración fue exitosa.

Hola,

¿Qué hacer si se realizó una copia de seguridad mientras estaba activada :slight_smile:?

Lo solucioné;

Abrí dump.sql con el programa EmEditor y busqué enable_s3_uploads, S3 y cambié todas las “t” a “f” y todos los “true” a “false”.

Restauración exitosa :slight_smile:

Bueno, entonces tendrás que ensuciarte las manos. Lo siento por eso. Planeo comenzar a refactorizar y mejorar las copias de seguridad y restauraciones la próxima semana, pero puede llevar un tiempo hasta que todo vuelva a estar perfecto.

¡Eso es genial! Iba a sugerir exactamente esos pasos. :wink:

Para cualquier persona que lea esto en el futuro: si necesitas editar el archivo dump.sql (que podría ser bastante grande), te recomiendo Scintilla and SciTE como editor. Maneja esos archivos grandes sin problemas.