외부 소스를 통해 채워지는 포스트 그리드에 students
테이블이 있습니다. 매일 밤 students_swap
테이블에 데이터를 채운 다음 장시간 작업이 완료되면 students
으로 이름을 바꾼 다음 원본 테이블이 다음 날 사용되는 students_swap
이됩니다.postgresql에서 * _swap 테이블 (w/인덱스)을 만드는 방법
이 문제는 원래 테이블에 새 열이나 인덱스를 추가 할 때 스왑 테이블에서도 마찬가지입니다. 나는 다음과 같은 승 /이 중 일부를 자동화하기 위해 시도하고있다 :
-- Drop the swap table if it's already there...
DROP TABLE IF EXISTS students_swap;
-- Recreate the swap table using the original as a template...
CREATE TABLE students_swap AS SELECT * FROM students WHERE 1=2;
... populate the swap table ....
ALTER TABLE students RENAME TO students_temp;
ALTER TABLE students_swap RENAME TO ps_students;
ALTER TABLE students_temp RENAME TO students_swap;
이 테이블 구조를 만들기 위해 잘 작동하지만 인덱스가 스왑 테이블에 대해 생성되지 않습니다.
제 질문은 원래 테이블과 스왑 테이블이 동기화 상태를 유지하도록 테이블 구조 외에도 모든 인덱스를 어떻게 복사합니까? 대신
대체 시나리오 : 1) pg_dump를 사용하여 스키마 덤프 2) 스키마 이름 바꾸기 3) 다시 작성하고 덤프에서 스키마를 가져옵니다. – joop