Durante la restauración: "EXCEPCIÓN: Estás intentando restaurar una versión más reciente del esquema. ¡Deberías migrar primero!"

Recientemente configuré un servidor de Discourse, después de pasar un tiempo en una prueba (trydiscourse.com). Cuando lo configuré, descargué una copia de seguridad de los datos de nuestra prueba desde trydiscourse.com y pude restaurar esos datos en nuestro Discourse autoalojado.

Aproximadamente una semana después, cuando la prueba estaba terminando, descargué otra copia de seguridad de trydiscourse.com e intenté restaurarla. Esta vez, la restauración falló. Aquí están los registros:

[2022-03-05 01:31:08] [STARTED]

[2022-03-05 01:31:08] 'Joaquin' ha iniciado la restauración.

[2022-03-05 01:31:08] Marcando la restauración como en ejecución...

[2022-03-05 01:31:08] Asegurándose de que /var/www/discourse/tmp/restores/default/2022-03-05-013108 existe...

[2022-03-05 01:31:08] Copiando archivo a directorio temporal...

[2022-03-05 01:31:08] Descomprimiendo archivo, esto puede tardar un poco...

[2022-03-05 01:31:08] Extrayendo archivo de volcado...

[2022-03-05 01:31:08] Validando metadatos...

[2022-03-05 01:31:08]   Versión actual: 20220220234155

[2022-03-05 01:31:08]   Versión restaurada: 20220223161000

[2022-03-05 01:31:08] EXCEPCIÓN: Estás intentando restaurar una versión más reciente del esquema. ¡Deberías migrar primero!

[2022-03-05 01:31:08] /var/www/discourse/lib/backup_restore/meta_data_handler.rb:31:in `validate'

/var/www/discourse/lib/backup_restore/restorer.rb:112:in `validate_backup_metadata'

/var/www/discourse/lib/backup_restore/restorer.rb:43: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-03-05 01:31:08] Intentando revertir...

[2022-03-05 01:31:08] No fue necesario revertir

[2022-03-05 01:31:08] Limpiando...

[2022-03-05 01:31:08] Eliminando el directorio temporal '/var/www/discourse/tmp/restores/default/2022-03-05-013108'...

[2022-03-05 01:31:08] Marcando la restauración como finalizada...

[2022-03-05 01:31:08] Notificando a 'Joaquin' el fin de la restauración...

Por lo que he podido investigar, el “esquema” que la excepción dice que debería “migrar primero” tiene algo que ver con la base de datos que utiliza Discourse.

He buscado en Discourse Meta y no he visto a nadie hablando de esto. También actualicé Discourse a la última versión y volví a intentar restaurar, pero obtuve el mismo resultado. He investigado en los archivos de Discourse para ver si había alguna herramienta relevante que pudiera ayudar, pero no vi nada que pareciera prometedor.

Mi mejor suposición en este momento es que durante esa semana después de configurar nuestro Discourse autoalojado, algo se cambió en nuestro foro de prueba en trydiscourse.com.

Mis preguntas son:

  1. ¿Cómo puedo hacer la migración que sugiere el error?
  2. ¿Qué causó exactamente este fallo de restauración? ¿Es algo que podría ocurrir normalmente (no durante una transición de prueba a autoalojado)?

¡Gracias de antemano por cualquier ayuda con esto! :slightly_smiling_face:

1 me gusta

Asegúrate de reconstruir tu instancia autoalojada con al menos los mismos complementos que se han instalado en tu prueba.

Alternativamente, si te sientes aventurero, podrías renombrar tu archivo de copia de seguridad, reemplazando 20220223161000 con 20220220234155 en el nombre del archivo.

6 Me gusta

Encontré el mismo problema hace unos días. La función de búsqueda me llevó rápidamente a la solución:

(lo mismo que @RGJ, por cierto).

3 Me gusta

¡Gracias por las respuestas! Es muy útil :heart:

Todavía tengo curiosidad sobre cómo hacer la migración, pero parece que puede que no sea necesaria.

2 Me gusta