Fehler beim Ausführen von remap nach Änderung der Site-URL

Ich habe die URL meiner Discourse-Site geändert und folge den Anweisungen unter Change the domain name or rename your Discourse. Beim Versuch, remap auszuführen, erhalte ich immer wieder den folgenden Fehler. Das System weist mich an, das Skript erneut auszuführen, aber jedes Mal tritt derselbe Fehler auf.[1]

Ich bin mir nicht sicher, was mein nächster Schritt sein soll, und wäre für Orientierungshilfe dankbar. Vielen Dank im Voraus! :seedling:

root@digitallysovereign:/var/discourse# ./launcher enter app
x86_64 arch detected.
root@digitallysovereign-app:/var/www/discourse# discourse remap discourse.tobiaseigen.org digitallysovereign.org
Rewriting all occurrences of discourse.tobiaseigen.org to digitallysovereign.org
WILL RUN ON 'default' DB
THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES): YES

Remapping tables on default...

ai_api_audit_logs=919
ai_secrets=1
backup_metadata=1
browser_pageview_events=3664
Error: ERROR:  duplicate key value violates unique constraint "idx_bprd_rollups_date_referrer_unique"
DETAIL:  Key (date, normalized_referrer)=(2026-07-01, digitallysovereign.org) already exists.
The remap has only been partially applied due to the error above. Please re-run the script again.
root@digitallysovereign-app:/var/www/discourse# discourse remap discourse.tobiaseigen.org digitallysovereign.org
Rewriting all occurrences of discourse.tobiaseigen.org to digitallysovereign.org
WILL RUN ON 'default' DB
THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES): YES

Remapping tables on default...

Error: ERROR:  duplicate key value violates unique constraint "idx_bprd_rollups_date_referrer_unique"
DETAIL:  Key (date, normalized_referrer)=(2026-07-01, digitallysovereign.org) already exists.
The remap has only been partially applied due to the error above. Please re-run the script again.
root@digitallysovereign-app:/var/www/discourse# discourse remap discourse.tobiaseigen.org digitallysovereign.org
Rewriting all occurrences of discourse.tobiaseigen.org to digitallysovereign.org
WILL RUN ON 'default' DB
THIS TASK WILL REWRITE DATA, ARE YOU SURE (type YES): YES

Remapping tables on default...

Error: ERROR:  duplicate key value violates unique constraint "idx_bprd_rollups_date_referrer_unique"
DETAIL:  Key (date, normalized_referrer)=(2026-07-01, digitallysovereign.org) already exists.
The remap has only been partially applied due to the error above. Please re-run the script again.

  1. Ich weiß, dass der Wahnsinn darin besteht, dasselbe immer und immer wieder zu tun und ein anderes Ergebnis zu erwarten! :rofl: ↩︎

Es sieht nach einer Constraints-Kollision in der Postgres-Analysetabelle aus. Deine Datenbank enthält bereits Einträge für die neue Domain an bestimmten Daten, sodass das Remap-Tool wahrscheinlich Duplikate erstellt, die von Postgres abgelehnt werden.

Ich würde versuchen, die alten Domain-Einträge nur für die Daten zu löschen, an denen die neue Domain bereits Daten hat, um historische Daten zu erhalten und das Remap-Tool freizuschalten. Aber erst ein sicheres Backup erstellen.

Versuche dies:

cd /var/discourse
./launcher enter app
# Erstelle ein sicheres Backup
discourse backup
# Betrete die Datenbankkonsole
discourse db
/* Lösche die kollidierenden Einträge */
DELETE FROM bprd_rollups 
WHERE normalized_referrer = 'discourse.tobiaseigen.org' 
AND date IN (
    SELECT date 
    FROM bprd_rollups 
    WHERE normalized_referrer = 'digitallysovereign.org'
);

/* Verlasse Postgres */
\q

Führe dann erneut das Remap-Tool aus

discourse remap discourse.tobiaseigen.org digitallysovereign.org

Verwende dann die rebake_match-Rake-Aufgabe anstelle eines vollständigen Rebackes

# Rebacke nur Beiträge, die den neuen Domain-String enthalten
rake posts:rebake_match["digitallysovereign.org"]