Rasin
(Rasin)
16. Oktober 2019 um 06:38
1
Ich habe versucht, mein Backup auf einen neuen Server wiederherzustellen, und es traten einige Fehler auf.
Das Log ist hier: Ubuntu Pastebin
Der Fehler lautet möglicherweise:
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.
Ich dachte, es könnte ein Datenbankproblem sein, aber ich habe sie nicht bearbeitet. Ich habe nur das Backup-Tar heruntergeladen, aber es falsch wiederhergestellt.
Bitte helfen Sie!
ariznaf
(fernando)
16. Oktober 2019 um 07:02
2
Es gibt einen anderen Thread mit einem ähnlichen Problem.
Es handelt sich um ein seltsames Problem.
Viele von uns haben es einfach durch wiederholtes Ausprobieren gelöst.
Versuchen Sie es mehrmals; vielleicht tritt bei einem der Versuche der Fehler nicht auf.
Vielleicht liegt Ihr Problem anders, aber es ähnelt den Datenbankfehlern, die wir beim Wiederherstellen hatten.
Es scheint ein Fehler in den Wiederherstellungsskripten oder eine Art Fehler im verwendeten PostgreSQL-Datenbanksystem zu geben.
Rasin
(Rasin)
16. Oktober 2019 um 07:12
3
Wie seltsam ist diese Lösung…FML
Kann man die SQL-Datei bearbeiten, um sie normal zu machen?
Ich meine, gibt es eine Möglichkeit, doppelte Schlüssel zu ignorieren?
Rasin
(Rasin)
16. Oktober 2019 um 07:57
4
Und nachdem ich auf eine frühere Version oder eine Beta-Version neu aufgebaut habe, lautet das Log jetzt:
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'
Warum ist das ein Problem? Ich habe nichts an der TAR-Datei geändert.
Rasin
(Rasin)
16. Oktober 2019 um 12:46
6
Vielen Dank für diese Extraktionsangelegenheit!
Könntest du mir bitte beim Fehler mit doppelten Schlüsseln helfen? Oder gibt es eine Möglichkeit, dieses SQL in psql zu beheben?
gerhard
(Gerhard Schlager)
16. Oktober 2019 um 13:39
7
Rasin:
Der Fehler könnte sein:
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 Ich denke, die Migration in FIX: Add unique index to prevent duplicate slugs for categories · discourse/discourse@c71da3f · GitHub muss sicherstellen, dass die Spaltenwerte eindeutig sind, bevor der eindeutige Index erstellt wird.
daniel
(Daniel Waterworth)
16. Oktober 2019 um 14:36
8
@Rasin , dies sollte nun mit folgendem Commit behoben sein:
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.
Vielen Dank, dass Sie uns darauf aufmerksam gemacht haben, und entschuldigen Sie bitte etwaige Unannehmlichkeiten. Lassen Sie uns bitte wissen, falls Sie weitere Probleme haben.
ariznaf
(fernando)
16. Oktober 2019 um 21:52
9
Ja, ich habe es Ihnen bereits gesagt: Es ist etwas Seltsames.
Aber es hat für einige von uns funktioniert, wie Sie hier nachlesen können:
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.
Ich weiß nicht, ob Ihre Situation dieselbe ist, da der Fehler ähnlich, aber nicht genau gleich ist.
@usulrasolas hat kommentiert, dass er das Skript mit SQL-Befehlen bearbeitet hat, um es zu korrigieren.
Ich (und andere) haben jedoch nichts geändert, sondern einfach mehrere Versuche unternommen.
Es ist seltsam, das weiß ich, aber möglicherweise spielen Timing- oder Zeitüberschreitungsprobleme eine Rolle.
Das wissen wir nicht.
Die Entwickler prüfen es.
Rasin
(Rasin)
17. Oktober 2019 um 01:22
10
Vielen Dank für all eure Vorschläge! Wir freuen uns auf neue Updates.