postgresql 데이터베이스을 자동으로 가져와 새 데이터베이스에로드 할 수있는 스키마 스키마로 변환하는 자동화 된 방법이 있습니까? postgresql 데이터베이스를 다른 데이터베이스의 postgresql 스키마로 자동 변환하는 방법은 무엇입니까?
나는이 주위에 연주하고 내가하고 싶은 일을하는 두 가지 방법을 찾았지만 모두 내 솔직한 의견에 골치 :같이, 일반 옵션을 사용하여 데이터베이스에 pg_dump의 수행 스크립트의 일부를 실행 한 다음 sed tomfoolery를 실행하여 해당 변경 사항을 적용합니다. 그러나 이것은 고통과 벌레를 간청합니다.
데이터베이스 스키마에서 모든 테이블, 시퀀스, 데이터 등을 psql을 통해 새 스키마 이름으로 전송 한 다음 해당 스키마/데이터 만 덤프/복원합니다.
나는 아마도 옵션 2와 함께 갈 것이지만 누구나 쉽게 할 수있는 방법이 있습니까? 우리가 물건을 처음부터 만들어 내었다면, 이것은 물론 쉬운 일은 아니지만이 방법으로 여러 시스템에서 기존 데이터베이스를 전환해야 할 것입니다.
편집 : 나중에 이것을 읽는 사람들을위한 설명. 나는 기본적으로 데이터베이스 'A'의 공용 스키마를 가져 와서 데이터베이스 'B'의 새로운 명명 스키마로 덤프/복원하려고합니다. 데이터베이스 'B'는 공개 스키마를 다른 용도로 사용하거나 사용하지 않을 수 있으므로 데이터베이스 'B'의 공개 스키마에서 잠재적 인 데이터를 변경하거나 변경하지 않고 전송해야합니다.
이제 재미있는 부분이 있습니다.데이터베이스를 공개 스키마를 사용하고 있거나 복원하지 않을 수도 있습니다. 따라서 실수로 다른 사람들이 데이터에 액세스하지 못하게 할 수 있다고 생각하기 때문에 복구 후 이름을 바꾸는 것이 매우 불안합니다. 이 점을 반영하기 위해 질문을 업데이트했습니다. 감사. –
이 문제를 해결하는 방법에 대한 정보를 추가했습니다. 그러나 어떤 시점에서 수동 개입을 요구해야하는 경우를 설명해야합니다. –