Fehler beim Importieren des Backups: "eindeutiger Index konnte nicht erstellt werden"

Ok, ich habe es behoben. Ich habe Folgendes getan:

Container betreten

./launcher enter app

Mit der Datenbank verbinden

su postgres -c 'psql discourse'

Versuchen, Duplikate zu finden

discourse=# select * from incoming_referers where path LIKE '%/search/' ORDER BY incoming_domain_id;

  id  |    path    | incoming_domain_id
------+------------+--------------------
 3339 | /search/   |                 33
 6257 | /search/   |                 91
 1567 | /search/   |                298
 1777 | /search/   |                341
 3010 | /search/   |                418
 6247 | /search/   |                418
 4293 | /search/   |                644
 2899 | /search/   |                653
 3447 | /search/   |                793
 3696 | /search/   |                852
 4395 | /a/search/ |               1050
 6968 | /search/   |               1305
 5634 | /search/   |               1387
 5834 | /search/   |               1437
 6519 | /search/   |               1637
 7127 | /search/   |               1787
 7280 | /search/   |               1827
(17 rows)

Duplikat löschen

DELETE FROM incoming_referers WHERE path LIKE '%/search/' AND id IN (6247);

Dann neu aufbauen

discourse=# REINDEX SCHEMA CONCURRENTLY public;
WARNING:  cannot reindex invalid index "public.incoming_referers_pkey_ccnew" concurrently, skipping
WARNING:  cannot reindex invalid index "public.index_incoming_referers_on_path_and_incoming_domain_id_ccnew" concurrently, skipping
WARNING:  cannot reindex invalid index "pg_toast.pg_toast_20732_index_ccnew" concurrently, skipping
REINDEX

Anschließend habe ich ein weiteres Backup erstellt, auf den neuen Server kopiert und es wurde erfolgreich importiert :smiley:

Es wäre schön, wenn der Backup-Prozess Duplikate erkennen könnte, um Probleme zu vermeiden. Ich hatte Glück, dass ich Zugriff auf den ursprünglichen Server hatte, der noch lief. Wenn ich ein kaltes Backup wiederhergestellt hätte, wäre dies wahrscheinlich ein größeres Problem gewesen.

Vielen Dank für deine Hilfe.