Rasin
(Rasin)
Octobre 16, 2019, 6:38
1
J’essayais de restaurer ma sauvegarde sur un nouveau serveur, mais des erreurs sont apparues.
Le journal se trouve ici : Ubuntu Pastebin
L’erreur est peut-être :
PG::UniqueViolation: ERROR: could not create unique index "unique_index_categories_on_slug"
DETAIL: Key (COALESCE(parent_category_id, '-1'::integer), slug)=(5, ) is duplicated.
Je pensais qu’il s’agissait d’un problème de base de données, mais je ne l’ai pas modifiée. J’ai simplement téléchargé l’archive de sauvegarde, mais je l’ai restaurée incorrectement.
Merci de m’aider !
ariznaf
(fernando)
Octobre 16, 2019, 7:02
2
Il y a un autre fil avec un problème similaire.
C’est un problème étrange.
Beaucoup d’entre nous l’ont résolu simplement en continuant d’essayer.
Essayez plusieurs fois et peut-être que l’une des fois, vous n’aurez pas l’erreur.
Il se peut que votre problème soit différent, mais il ressemble aux erreurs de base de données que nous avons rencontrées lors de la restauration.
Il semble qu’il y ait un bug dans les scripts de restauration ou une sorte de bug avec le système de base de données PostgreSQL utilisé.
Rasin
(Rasin)
Octobre 16, 2019, 7:12
3
Quelle solution étrange… FML
Serait-il possible de modifier le fichier SQL pour le rendre normal ?
Je veux dire, existe-t-il un moyen d’ignorer les clés dupliquées ?
Rasin
(Rasin)
Octobre 16, 2019, 7:57
4
Et après avoir reconstruit vers une version antérieure ou une version bêta, le journal est devenu :
EXCEPTION: Compression::Strategy::ExtractFailed[2019-10-16 07:53:52] /var/www/discourse/lib/compression/strategy.rb:89:in `block in extract_file'
/var/www/discourse/lib/compression/strategy.rb:85:in `open'
/var/www/discourse/lib/compression/strategy.rb:85:in `extract_file'
/var/www/discourse/lib/compression/strategy.rb:26:in `block (2 levels) in decompress'
/usr/local/lib/ruby/site_ruby/2.6.0/rubygems/package/tar_reader.rb:65:in `each'
/var/www/discourse/lib/compression/strategy.rb:18:in `block in decompress'
/var/www/discourse/lib/compression/tar.rb:26:in `get_compressed_file_stream'
/var/www/discourse/lib/compression/strategy.rb:15:in `decompress'
/var/www/discourse/lib/compression/pipeline.rb:26:in `block in decompress'
/var/www/discourse/lib/compression/pipeline.rb:24:in `each'
/var/www/discourse/lib/compression/pipeline.rb:24:in `reduce'
/var/www/discourse/lib/compression/pipeline.rb:24:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:141:in `decompress_archive'
/var/www/discourse/lib/backup_restore/restorer.rb:60:in `run'
/var/www/discourse/lib/backup_restore.rb:166:in `block in start!'
/var/www/discourse/lib/backup_restore.rb:163:in `fork'
/var/www/discourse/lib/backup_restore.rb:163:in `start!'
/var/www/discourse/lib/backup_restore.rb:22:in `restore!'
/var/www/discourse/app/controllers/admin/backups_controller.rb:119:in `restore'
Pourquoi cela pose-t-il problème ? Je n’ai rien modifié dans le fichier tar.
Rasin
(Rasin)
Octobre 16, 2019, 12:46
6
Merci beaucoup pour cette opération d’extraction !
Pourriez-vous s’il vous plaît m’aider avec l’erreur de clé dupliquée ? Ou existe-t-il un moyen de corriger ce SQL dans psql ?
gerhard
(Gerhard Schlager)
Octobre 16, 2019, 1:39
7
Rasin:
L’erreur est peut-être :
PG::UniqueViolation: ERROR: could not create unique index "unique_index_categories_on_slug"
DETAIL: Key (COALESCE(parent_category_id, '-1'::integer), slug)=(5, ) is duplicated.
@daniel Je pense que la migration dans FIX: Add unique index to prevent duplicate slugs for categories · discourse/discourse@c71da3f · GitHub doit s’assurer que les valeurs de la colonne sont uniques avant de créer l’index unique.
daniel
(Daniel Waterworth)
Octobre 16, 2019, 2:36
8
@Rasin , Ceci devrait maintenant être corrigé depuis :
committed 02:02PM - 16 Oct 19 UTC
Slugs can be the empty string, but the added index didn't account for
that. This… commit changes the migration, stopping it from being unique
so that it can be applied everywhere and adds another migration that
recreates the index properly.
Merci de nous avoir signalé ce problème et nous nous excusons pour tout désagrément. N’hésitez pas à nous informer si vous rencontrez d’autres problèmes.
ariznaf
(fernando)
Octobre 16, 2019, 9:52
9
Oui, je vous l’ai déjà dit : c’est une chose étrange.
Mais cela a fonctionné pour plusieurs d’entre nous, comme vous pouvez le lire ici :
Wow, trying to reproduce it so I can be sure that things will go as planned on migration, and I have the error again? I’m going to continue to try and find the steps to reproduce a fix. Because I can’t reproduce it now.
Je ne sais pas si votre situation est la même, car l’erreur est similaire mais pas exactement identique.
@usulrasolas a commenté qu’il avait modifié le script avec des requêtes SQL pour le corriger.
Mais moi (et d’autres) n’avons rien changé, nous avons simplement essayé à plusieurs reprises.
C’est étrange, je le sais, mais il se peut que des problèmes de temporisation ou d’expiration du temps soient en jeu.
Nous ne savons pas.
Les développeurs y travaillent.
Rasin
(Rasin)
Octobre 17, 2019, 1:22
10
Merci pour toutes vos suggestions ! Nous attendons avec impatience les nouvelles mises à jour.