La restauration de Discourse échoue avec l'erreur relation déjà existante

À travers une série d’événements malheureux, il semble que je ne parvienne pas à restaurer à partir de ma dernière sauvegarde complète.

L’histoire complète suivra, mais pour l’instant, le problème que je rencontre survient lors de la restauration d’une sauvegarde et génère cette erreur :

Migration de la base de données…
EXCEPTION : rake db:migrate
Échec de la migration de la base de données.
rake aborted !
StandardError : Une erreur s'est produite ; cette migration et toutes les suivantes ont été annulées : (StandardError)

PG::DuplicateTable : ERREUR : la relation « gamification_leaderboard_scores » existe déjà

Cela semble être un problème lié à mes plugins, mais j’apprécierais de l’aide pour décrypter les journaux et trouver une solution permettant à la restauration de fonctionner.

Quoi qu’il en soit, voici ce qui s’est passé.

Plus tôt aujourd’hui, j’ai effectué une mise à jour de Discourse pour passer à la version 2026.5.0-latest b0873d3ecd, qui a introduit une modification incompatible ayant fait cesser le fonctionnement de mon thème principal. J’aurais dû vérifier la compatibilité avant de mettre à jour.

Dans un moment de panique, j’ai pensé pouvoir restaurer à partir de ma dernière sauvegarde pour revenir à une version de Discourse compatible avec le thème. Avant la restauration, j’ai effectué une sauvegarde complète, pensant que si quelque chose tournait mal, j’aurais autant de points de restauration que possible.

Eh bien, quelque chose s’est mal passé lors de cette première restauration et Discourse est revenu avec les 15 derniers jours de contenu manquants. En approfondissant l’investigation, j’ai trouvé un sujet sur Meta suggérant de renommer le fichier de sauvegarde de 2026-04-28-033449-v20260420014648.sql.gz à 2026-04-28-033449-v20260407093145.sql.gz. Je ne sais pas pourquoi cela a fonctionné, mais cela m’a au moins permis de revenir à la sauvegarde d’hier.

Je dois toujours restaurer à partir de ma dernière sauvegarde complète effectuée ce matin, qui est celle générant l’erreur affichée ci-dessus.

Cela s’est produit avec certains autres plugins. D’une manière ou d’une autre, une migration a créé la table, mais le système de migration ne reconnaît pas qu’elle a été exécutée.

Je ne sais pas comment l’expliquer suffisamment clairement à quelqu’un. En gros, vous devriez arrêter la restauration avant qu’elle ne lance les migrations (il existe une option pour la commande de restauration afin de faire cela) et supprimer la table, je pense. Si cela a du sens, ou presque, vous devriez pouvoir résoudre le problème avec l’aide de https://ask.discourse.com/.

Si cela ne vous aide pas et que vous êtes pressé et avez un budget, vous pouvez poser votre question dans Marketplace ou m’envoyer un e-mail. Si vous n’êtes pas pressé ou si vous n’avez pas de budget, il est possible que quelqu’un puisse vous expliquer quoi faire d’une manière que vous comprendrez.