Configuré un nuevo host para tener un entorno de ‘staging’. Recreé la misma instalación de Discourse con lo que debería ser la misma versión. Estoy ejecutando la versión: 2.8.2.
Primer comentario, a partir de la versión 2.8.2, el tamaño de mi copia de seguridad ha disminuido de 282 MB a alrededor de 90 MB. No estoy seguro de por qué, pero lo aceptaré con la inteligencia añadida de que me estoy aprovechando.
Descargué el último archivo de mi foro y lo subí al almacenamiento local en el nuevo entorno de staging.
La restauración falla debido a:
[2022-02-27 19:41:18] ALTER TABLE
[2022-02-27 19:41:18] ALTER TABLE
[2022-02-27 19:41:18] Migrando la base de datos...
[2022-02-27 19:43:00]
[2022-02-27 19:43:00] Reconectando a la base de datos...
[2022-02-27 19:43:00] Recargando la configuración del sitio...
[2022-02-27 19:43:00] Desactivando correos electrónicos salientes para usuarios que no son del personal...
[2022-02-27 19:43:02] Desactivando el modo de solo lectura...
[2022-02-27 19:43:02] Limpiando la caché de categorías...
[2022-02-27 19:43:02] Recargando traducciones...
[2022-02-27 19:43:02] Remapeando subidas...
[2022-02-27 19:43:02] Remapeando 'https://forum.geekbeacon.org' a 'https://forum-staging.geekbeacon.org'
[2022-02-27 19:43:08] Restaurando subidas, esto puede tardar un poco...
[2022-02-27 19:43:36] EXCEPCIÓN: 8 publicaciones no se han reasignado a la nueva URL de carga de S3. La migración de S3 falló para la base de datos 'default'.
[2022-02-27 19:43:36] /var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/file_store/s3_store.rb:317:in `copy_from'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:62:in `restore_uploads'
/var/www/discourse/lib/backup_restore/uploads_restorer.rb:44:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:61:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2022-02-27 19:43:36] Intentando revertir...
[2022-02-27 19:43:36] Revertiendo...
[2022-02-27 19:43:36] Limpiando...
[2022-02-27 19:43:36] Eliminando funciones del esquema discourse_functions...
[2022-02-27 19:43:36] Eliminando el directorio temporal '/var/www/discourse/tmp/restores/default/2022-02-27-194051'...
[2022-02-27 19:43:36] Reanudando sidekiq...
[2022-02-27 19:43:36] Marcando la restauración como finalizada...
[2022-02-27 19:43:36] Notificando a 'csgeek' el fin de la restauración...
Este es tu problema. ¿Quizás usar el mismo bucket de S3 y usar el mismo bucket? Quizás asegúrate de que la configuración oculta que se llama algo como “descargar S3 en copia de seguridad” esté activada. Necesitarás buscar o mirar en el código fuente el nombre de la configuración.
O quizás necesites asegurarte de que el resto de tus subidas en el sitio de producción estén en S3.
No tengo S3 configurado. Supongo que el servidor antiguo tiene datos antiguos que no se asignaron a una ubicación S3 válida.
Volví al servidor anterior y tengo 2 buckets configurados, 1 para copias de seguridad y 1 para medios. Seguí la guía y configuré AWS S3, incluido el CDN.
Cuando ejecuto rake uploads:migrate_to_s3, que falló, lo seguí con posts:rebake y eso parece haber reducido el número de errores, pero todavía falla:
Tenga en cuenta que la migración a S3 no se puede revertir actualmente.
[CTRL+c] para cancelar, [ENTER] para continuar
Migrando cargas a S3 para 'default'...
Subiendo archivos a S3...
- Listando archivos locales
=> 208 archivos
- Listando archivos de S3
. => 978 archivos
- Sincronizando archivos a S3
................................................................................................................................................................................................................
Actualizando las URL en la base de datos...
Eliminando imágenes optimizadas antiguas...
Marcando todas las publicaciones que contienen lightboxes para rebake...
Se marcaron 15 publicaciones para un rebake
rake abortó!
FileStore::ToS3MigrationError: 1 publicación no se reasigna a la nueva URL de carga de S3. La migración a S3 falló para la base de datos 'default'.
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:123:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:102:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:90:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:100:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:96:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tareas: TOP => uploads:migrate_to_s3
(Ver rastreo completo ejecutando la tarea con --trace)
¿Hay alguna forma de ejecutar migrate_to_s3 en modo detallado para identificar la publicación que es la culpable?