포스트그레SQL 분석 테이블에서 제약 조건 충돌이 발생한 것으로 보입니다. 데이터베이스에 이미 특정 날짜에 대한 새 도메인 기록이 포함되어 있어, 리맵(remap) 도구가 중복을 생성하고 포스트그레SQL이 이를 거부하고 있을 가능성이 큽니다.
역사적 데이터를 보존하고 리맵 도구의 작동을 막지 않도록, 새 도메인에 이미 데이터가 있는 날짜에 대해서만 해당 테이블의 구 도메인 기록을 삭제하는 것을 시도해 보세요. 단, 먼저 안전 백업을 수행하세요.
다음과 같이 시도해 보세요:
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'
);
/* 포스트그레SQL 종료 */
\q
그 후 리맵 도구를 다시 실행하세요.
discourse remap discourse.tobiaseigen.org digitallysovereign.org
그 다음 전체 리베이킹(full rebake) 대신 rebake_match 레이크 태스크를 사용하세요.
# 새 도메인 문자열을 포함하는 게시물만 리베이킹
rake posts:rebake_match["digitallysovereign.org"]