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

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"]