Impossible de restaurer la base de données : la clé SQL est dupliquée

Salut à tous. J’essaie de migrer un serveur. J’ai suivi ce processus.

En essayant de restaurer la base de données via la ligne de commande, cela échoue avec l’erreur suivante :

CREATE INDEX
ERREUR :  impossible de créer l'index unique « unique_post_links »
DÉTAIL :  La clé (topic_id, post_id, url)=(19891, 32700, http://www.dhl-usa.com/home/home.asp) est dupliquée.
EXCEPTION : psql a échoué : DÉTAIL :  La clé (topic_id, post_id, url)=(19891, 32700, http://www.dhl-usa.com/home/home.asp) est dupliquée.
/var/www/discourse/lib/backup_restore/database_restorer.rb:92:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:51:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:483:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:31:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/cli.rb:25:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/exe/bundle:48:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/lib/bundler/friendly_errors.rb:120:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.3.18/exe/bundle:36:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tentative de rollback...
Annulation en cours...
Nettoyage...
Suppression des fonctions du schéma discourse_functions...
Suppression du répertoire tmp '/var/www/discourse/tmp/restores/default/2022-08-29-194458'...
Réactivation de sidekiq...
Marquage de la restauration comme terminée...
Notification à 'system' de la fin de la restauration...
Terminé !
[ÉCHOUÉ]
Restauration terminée.

Le forum fonctionne bien sur l’ancien serveur. Je l’ai mis en mode lecture seule, j’ai effectué la sauvegarde, je l’ai transférée sur la nouvelle machine et j’ai lancé la restauration.

Des idées pour résoudre ce problème, s’il vous plaît ?

Il semble que votre index soit corrompu. Vous devrez supprimer ou mettre à jour ces entrées. Si vous effectuez une recherche, je pense qu’il existe encore des sujets qui décrivent généralement comment le faire.

Sur l’ancien serveur, essayez de réindexer cette table et continuez à modifier des éléments jusqu’à ce que cela réussisse. Si vous n’êtes pas familier avec SQL et que vous avez un budget, vous pouvez demander sur Marketplace ou me contacter.

Quelle version de Discourse et de postgres utilisez-vous ? Je n’ai pas vu beaucoup de cas de ce type depuis postgres 13.

3 « J'aime »

Merci Jay. Je te contacterai. Je suis débordé pour le moment.

1 « J'aime »