Sembra esserci un conflitto di vincoli nella tabella di analisi di PostgreSQL. Il tuo database include già registrazioni del nuovo dominio per date specifiche, quindi lo strumento di rimappatura sta probabilmente creando duplicati che PostgreSQL sta rifiutando.
Prova a eliminare i record del vecchio dominio nella tabella specifica solo per le date in cui il nuovo dominio ha già dati, in modo da preservare i dati storici e sbloccare lo strumento di rimappatura. Fai prima un backup di sicurezza.
Prova questo:
cd /var/discourse
./launcher enter app
# crea un backup di sicurezza
discourse backup
# entra nella console del database
sudo -u postgres psql discourse
/* trova il nome esatto della tabella associata a questo indice */
SELECT tablename
FROM pg_indexes
WHERE indexname = 'idx_bprd_rollups_date_referrer_unique';
Assumendo che la query sopra restituisca browser_pageview_rollup_details, usa quel nome di tabella nella query successiva
/* elimina i record di analisi in conflitto */
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'
);
/* esci da postgres */
\q
Poi esegui di nuovo lo strumento di rimappatura
discourse remap discourse.tobiaseigen.org digitallysovereign.org
Poi usa il task rake rebake_match invece di un ribaking completo
# ribake solo i post contenenti la stringa del nuovo dominio
rake posts:rebake_match["digitallysovereign.org"]