PostgreSQLの分析テーブルで制約の衝突が発生しているようです。データベースには既に特定の日付に関する新ドメインのレコードが含まれているため、remapツールが重複を作成しようとしており、PostgreSQLがそれを拒否している可能性があります。
新ドメインがデータを持っている日付に対してのみ、旧ドメインのレコードを特定のテーブルから削除することを試みてください。これにより、履歴データを保持しつつremapツールを解放できます。ただし、まず安全なバックアップを作成してください。
以下を試してみてください:
cd /var/discourse
./launcher enter app
# 安全なバックアップを作成
discourse backup
# データベースコンソールに入る
sudo -u postgres psql discourse
/* このインデックスに関連する正確なテーブル名を見つける */
SELECT tablename
FROM pg_indexes
WHERE indexname = 'idx_bprd_rollups_date_referrer_unique';
上記のクエリが browser_pageview_rollup_details を返す場合、次のクエリでそのテーブル名を使用します
/* 衝突する分析レコードを削除 */
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'
);
/* PostgreSQLを終了 */
\q
その後、remapツールを再度実行します
discourse remap discourse.tobiaseigen.org digitallysovereign.org
次に、完全なrebakeではなく rebake_match rakeタスクを使用します
# 新ドメイン文字列を含む投稿のみをrebake
rake posts:rebake_match["digitallysovereign.org"]