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 ![]()
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.