Lors de la restauration : "EXCEPTION : Vous essayez de restaurer une version plus récente du schéma. Vous devriez d'abord migrer !"

J’ai récemment configuré un serveur Discourse, après avoir passé un certain temps sur un essai (trydiscourse.com). Lorsque je l’ai configuré, j’ai téléchargé une sauvegarde des données de notre essai depuis trydiscourse.com, et j’ai pu restaurer ces données sur mon Discourse auto-hébergé.

Environ une semaine plus tard, alors que l’essai touchait à sa fin, j’ai téléchargé une autre sauvegarde depuis trydiscourse.com et j’ai essayé de la restaurer. Cette fois, la restauration a échoué. Voici les journaux :

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

[2022-03-05 01:31:08] 'Joaquin' a lancé la restauration !

[2022-03-05 01:31:08] Marquage de la restauration comme en cours...

[2022-03-05 01:31:08] Vérification que /var/www/discourse/tmp/restores/default/2022-03-05-013108 existe...

[2022-03-05 01:31:08] Copie de l'archive dans le répertoire temporaire...

[2022-03-05 01:31:08] Décompression de l'archive, cela peut prendre un certain temps...

[2022-03-05 01:31:08] Extraction du fichier de vidage...

[2022-03-05 01:31:08] Validation des métadonnées...

[2022-03-05 01:31:08]   Version actuelle : 20220220234155

[2022-03-05 01:31:08]   Version restaurée : 20220223161000

[2022-03-05 01:31:08] EXCEPTION : Vous essayez de restaurer une version plus récente du schéma. Vous devriez migrer d'abord !

[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] Tentative de rollback...

[2022-03-05 01:31:08] Il n'y avait pas besoin de rollback

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

[2022-03-05 01:31:08] Suppression du répertoire temporaire '/var/www/discourse/tmp/restores/default/2022-03-05-013108'...

[2022-03-05 01:31:08] Marquage de la restauration comme terminée...

[2022-03-05 01:31:08] Notification à 'Joaquin' de la fin de la restauration...

D’après mes recherches, le “schéma” que l’exception indique de “migrer d’abord !” est lié à la base de données utilisée par Discourse.

J’ai cherché sur Discourse Meta, et je n’ai vu personne parler de cela. J’ai également mis à jour Discourse vers la dernière version, puis j’ai essayé de restaurer à nouveau, mais le résultat a été le même. J’ai exploré les fichiers de Discourse pour voir s’il y avait un outil pertinent qui pourrait aider, mais je n’ai rien trouvé de prometteur.

Ma meilleure hypothèse actuelle est que, pendant cette semaine après avoir configuré mon Discourse auto-hébergé, quelque chose a été modifié sur mon forum d’essai sur trydiscourse.com.

Mes questions sont :

  1. Comment puis-je effectuer la migration suggérée par l’erreur ?
  2. Qu’est-ce qui a exactement causé cet échec de restauration ? Est-ce quelque chose qui pourrait arriver normalement (pas lors d’une transition d’un essai vers un auto-hébergement) ?

Merci d’avance pour toute aide ! :slightly_smiling_face:

1 « J'aime »

Vous devez vous assurer de reconstruire votre instance auto-hébergée avec au moins les mêmes plugins que ceux installés lors de votre essai.

Alternativement, si vous vous sentez aventureux, vous pourriez renommer votre fichier de sauvegarde, en remplaçant 20220223161000 par 20220220234155 dans le nom du fichier.

6 « J'aime »

J’ai rencontré le même problème il y a quelques jours. La fonction de recherche m’a rapidement conduit à la solution :

(identique à @RGJ d’ailleurs).

3 « J'aime »

Merci pour vos réponses ! C’est très utile :heart:

Je suis toujours curieux de savoir comment faire la migration, mais il semble que cela pourrait ne pas être nécessaire.

2 « J'aime »