Durante il ripristino: "ECCEZIONE: Stai cercando di ripristinare una versione più recente dello schema. Dovresti prima eseguire la migrazione!"

Ho recentemente configurato un server Discourse, dopo aver trascorso del tempo in una prova (trydiscourse.com). Quando l’ho configurato, ho scaricato un backup dei dati dalla nostra prova da trydiscourse.com e sono stato in grado di ripristinare quei dati sul mio Discourse self-hosted.

Circa una settimana dopo, quando la prova stava per scadere, ho scaricato un altro backup da trydiscourse.com e ho provato a ripristinarlo. Questa volta, il ripristino è fallito. Ecco i log:

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

[2022-03-05 01:31:08] 'Joaquin' ha avviato il ripristino!

[2022-03-05 01:31:08] Segnalazione del ripristino come in esecuzione...

[2022-03-05 01:31:08] Assicurarsi che /var/www/discourse/tmp/restores/default/2022-03-05-013108 esista...

[2022-03-05 01:31:08] Copia dell'archivio nella directory tmp...

[2022-03-05 01:31:08] Decompressione dell'archivio, potrebbe richiedere del tempo...

[2022-03-05 01:31:08] Estrazione del file di dump...

[2022-03-05 01:31:08] Validazione dei metadati...

[2022-03-05 01:31:08]   Versione corrente: 20220220234155

[2022-03-05 01:31:08]   Versione ripristinata: 20220223161000

[2022-03-05 01:31:08] EXCEPTION: Stai cercando di ripristinare una versione più recente dello schema. Dovresti prima eseguire la migrazione!

[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] Tentativo di rollback...

[2022-03-05 01:31:08] Non c'è stato bisogno di rollback

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

[2022-03-05 01:31:08] Rimozione della directory tmp '/var/www/discourse/tmp/restores/default/2022-03-05-013108'...

[2022-03-05 01:31:08] Segnalazione del ripristino come terminato...

[2022-03-05 01:31:08] Notifica a 'Joaquin' della fine del ripristino...

Da quello che ho capito finora dalla mia ricerca, lo “schema” che l’eccezione dice che dovrei “migrare prima!” ha a che fare con il database che usa Discourse.

Ho cercato su Discourse Meta e non ho visto nessuno parlare di questo. Ho anche aggiornato Discourse all’ultima versione e poi ho provato a ripristinare di nuovo, ma ho ottenuto lo stesso risultato. Ho esaminato i file di Discourse per vedere se c’era uno strumento pertinente che potesse aiutare, ma non ho visto nulla di promettente.

La mia migliore ipotesi al momento è che durante quella settimana dopo aver configurato il mio Discourse self-hosted, qualcosa sia stato modificato nel nostro forum di prova su trydiscourse.com.

Le mie domande sono:

  1. Come posso eseguire la migrazione che l’errore suggerisce?
  2. Cosa ha causato esattamente questo fallimento del ripristino? È qualcosa che potrebbe accadere normalmente (non durante una transizione da prova a self-hosted)?

Grazie in anticipo per qualsiasi assistenza! :slightly_smiling_face:

1 Mi Piace

Assicurati di ricreare la tua istanza self-hosted con almeno gli stessi plugin installati nella tua versione di prova.

In alternativa, se ti senti avventuroso, potresti rinominare il tuo file di backup, sostituendo 20220223161000 con 20220220234155 nel nome del file.

6 Mi Piace

Ho riscontrato lo stesso problema qualche giorno fa. La funzione di ricerca mi ha rapidamente portato alla soluzione:

(lo stesso di @RGJ tra l’altro).

3 Mi Piace

Grazie per le risposte! È molto utile :heart:

Sono ancora curioso su come eseguire la migrazione, ma sembra che potrebbe non essere necessaria.

2 Mi Piace