Cargas faltantes después de la restauración

Estoy intentando mover mi instancia de Discourse a un servidor diferente.

Intenté usar la opción de restauración en el panel de administración en el servidor de destino, pero siguió fallando con este error:

[2022-04-23 21:59:00] Remapping uploads...
[2022-04-23 21:59:00] Restoring uploads, this may take a while...
[2022-04-23 21:59:00] EXCEPTION: Aws::S3::Errors::NoSuchBucket

La configuración exacta de app.yml es la misma tanto para la instancia de Discourse existente como para el nuevo servidor al que estoy intentando migrar.

No pude hacer que esto funcionara, así que decidí probar esta guía: Restore a backup from the command line

Obtuve el mismo error si usaba la misma configuración de app.yml.

Así que decidí comentar todo lo relacionado con S3, y eso pareció funcionar:

Reconnecting to the database...
Reloading site settings...
Disabling outgoing emails for non-staff users...
Disabling readonly mode...
Clearing category cache...
Reloading translations...
Remapping uploads...
Remapping '//bucket.nyc3.digitaloceanspaces.com/' to '/uploads/default/'
optimized_images=480
uploads=35
user_histories=13
Remapping 'https://cdnurl.com/' to 'https://forumurl.com/uploads/default/'
post_revisions=2
posts=4
topic_links=4
Remapping 'cdnurl.com' to 'forumurl.com'
topic_links=4
Restoring uploads, this may take a while...
Posts will be rebaked by a background job in sidekiq. You will see missing images until that has completed.
You can expedite the process by manually running "rake posts:rebake_uncooked_posts"
Clearing emoji cache...
Clear theme cache
Executing the after_restore_hook...
Cleaning stuff up...
Dropping functions from the discourse_functions schema...
Removing tmp '/var/www/discourse/tmp/restores/default/2022-04-23-234852' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[SUCCESS]
Restore done.

Después de que la restauración funcionó, decidí descomentar todo lo relacionado con S3 y ejecutar ./launcher rebuild app.

Luego intenté acceder a mi instancia de Discourse y noté que faltaban todas las cargas (logo, fotos de perfil, etc.).

Luego ejecuté:

./launcher enter app

rake posts:rebake (sin errores, dijo que rebakeó unos 60 posts)

rake posts:rebake_uncooked_posts (dijo que rebakeó 0 posts)

Incluso con esto, todas las cargas todavía no funcionan y devuelven un 404 (o en el caso de las fotos de perfil, muestran la foto de perfil predeterminada).

Del log anterior con la restauración, definitivamente parece que las URL se remapearon ya que piensa que S3 ya no se está utilizando, pero ¿hay alguna forma de volver a mapearlo después de que la restauración se complete, a lo que se supone que debe ser?

Alternativamente, ¿hay alguna forma de hacer que funcione con la configuración de S3 en app.yml? No estoy seguro de por qué insiste en que el bucket no existe.

Como referencia, así es como se ve la configuración de S3 en mi app.yml:

  DISCOURSE_USE_S3: true
  DISCOURSE_S3_REGION: nyc3
  DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
  DISCOURSE_S3_ACCESS_KEY_ID: KEY
  DISCOURSE_S3_SECRET_ACCESS_KEY: ACCESS_KEY
  DISCOURSE_S3_CDN_URL: https://forumcdn.com
  DISCOURSE_S3_BUCKET: upload-bucket
  DISCOURSE_S3_BACKUP_BUCKET: backup-bucket
  DISCOURSE_BACKUP_LOCATION: s3

El bucket utilizado para las cargas en la instancia de Discourse existente y la nueva instancia de Discourse son los mismos, por lo que esperaba que la reconstrucción funcionara y remapeara las URL.

No estoy seguro de dónde me equivoqué, pero espero que alguien pueda orientarme.

Gracias.

Lo que funciona bastante bien en mi experiencia es deshabilitar S3, hacer una copia de seguridad, restaurar y luego volver a habilitar S3.

2 Me gusta

Parece que las cargas de S3 ya están deshabilitadas en el panel de control, pero las cargas de S3 funcionan correctamente.

¿Significa eso que necesito deshabilitarlo en app.yml, ejecutar ./launcher rebuild app, luego hacer una copia de seguridad y restaurar?

Gracias

Bueno, logré resolver esto simplemente copiando la carpeta /var/discourse y reconstruyendo.

Ojalá la copia de seguridad/restauración integrada hubiera funcionado, pero así es la vida cuando eliges autoalojar :slight_smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.