Sieht aus wie ein Constraint-Konflikt in der PostgreSQL-Analysetabelle. Deine Datenbank enthält bereits Einträge für die neue Domain zu bestimmten Daten, sodass das Remap-Tool wahrscheinlich Duplikate erstellt, die von PostgreSQL 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 Sicherheitsbackup erstellen.
Versuche dies:
cd /var/discourse
./launcher enter app
# Erstelle ein Sicherheitsbackup
discourse backup
# Betrete die Datenbankkonsole
sudo -u postgres psql discourse
/* Finde den exakten Tabellennamen, der mit diesem Index verknüpft ist */
SELECT tablename
FROM pg_indexes
WHERE indexname = 'idx_bprd_rollups_date_referrer_unique';
Angenommen, die obige Abfrage gibt browser_pageview_rollup_details zurück, verwende dann diesen Tabellennamen in der nächsten Abfrage.
/* Lösche die kollidierenden Analyseinträge */
DELETE FROM browser_pageview_rollup_details
WHERE normalized_referrer = 'discourse.tobiaseigen.org'
AND date IN (
SELECT date
FROM browser_pageview_rollup_details
WHERE normalized_referrer = 'digitallysovereign.org'
);
/* Verlasse PostgreSQL */
\q
Führe dann das Remap-Tool erneut aus.
discourse remap discourse.tobiaseigen.org digitallysovereign.org
Verwende dann die rebake_match-Rake-Aufgabe anstelle eines vollständigen Rebakes.
# Rebake nur Beiträge, die den neuen Domain-String enthalten
rake posts:rebake_match["digitallysovereign.org"]