Fehler beim Wiederherstellen der DB

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!

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.

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?

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.

Schau dir folgendes an:

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?

@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.

@Rasin, dies sollte nun mit folgendem Commit behoben sein:

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.

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:

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.

Vielen Dank für all eure Vorschläge! Wir freuen uns auf neue Updates.