현재 MySQL 데이터베이스를 PostgreSQL로 마이그레이션하는 중입니다. 내가 가지고있는 하나의 테이블을 제외하고 거의 모든 것이 잘되었습니다 (정확한 mysqldump 매개 변수 등을위한 많은 인터넷 검색 후). 실제로 내 앱에서 가장 중요한 테이블입니다.
테이블 구조는 매우 간단합니다.
mysql> show create table samples;
.. skipped ...
CREATE TABLE `samples` (
`File_ID` int(11) NOT NULL,
`File` longblob,
PRIMARY KEY (`File_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=binary
그러나 매우 큽니다 (> 20Gb).
mysqldump의 --hex-blob 매개 변수를 사용하려고했지만 결과 덤프 파일을 명령 파일로 사용하려고 할 때 PostgreSQL 에서이 형식의 데이터를 허용하지 않습니다. 내가 시도한 또 다른 옵션은 --tab 옵션을 사용하여 덤프를 가져 와서 COPY 명령으로 PostgreSQL에 삽입하는 것입니다. 그러나 --hex-blob가 --tab과 작동하지 않고 PostgreSQL은 여전히 거기에서 말하는 덤프 파일을 수락하지 않습니다 잘못된 문자입니다.
사용자 지정 마이그레이션 도구를 작성하는 것이 결코 나쁜 생각이 아니라고 생각하기 시작했지만이 문제에 대한 조언을 얻을 수있어서 매우 기쁩니다 ...
마지막으로 PostgreSQL의 dblink 는 다른 PostgreSQL 인스턴스에만 연결할 수 있습니다. MySQL 프록시 가 더 낫다고 생각하지 않습니다 . PostgreSQL에 삽입하기 위해 MySQL에서 읽기 위해 선호하는 언어 (IE : Java 등)를 사용해야 할 수도 있습니다.
직접 bytea와 대한 posgresql 9 개 지원 육각 구문은 여기를 참조 : postgresql.org/docs/9.0/interactive/...가 (당신이 비록 나오지도의 비트가 필요합니다)