MySQL 데이터베이스를 PostgreSQL로 변환하는 방법? 있습니까? 또한

MySQL 데이터베이스를 PostgreSQL로 변환하기위한 명령 줄 도구가 있습니까? 또한 일반 mysqldump명령을 사용하여 데이터베이스를 변환하는 방법이 있는지 알고 싶습니다 .



답변

당신이 시도 했습니까?

mysqldump --compatible=postgresql dbname > export.sql

그런 다음 따옴표를 피하기 위해이 작업을 수행

sed "s/\\\'/\'\'/g" export.sql > export1.sql

좀 더 마사지가 필요할 수 있으므로 mysqldump doco를 자세히 살펴보십시오.


답변

다음은 매우 유용한 몇 가지 오픈 소스 도구입니다.

FromMySqlToPostgreSql
은 기능 도달 도구이며 사용하기 매우 쉽습니다.

데이터 유형을 매핑하고 제약 조건, 인덱스, PK 및 FK를 MySQL db에있는 그대로 정확하게 마이그레이션합니다.

기본적으로 PostgreSQL COPY를 사용하므로 데이터 전송이 매우 빠릅니다.

PHP로 작성된 FromMySqlToPostgreSql (> = 5.4).

pgloader   는 COPY 명령을 사용하는 PostgreSQL 용 데이터 로딩 도구입니다. 사용하는 것보다 주요 이점

COPY

또는

\copy

pgloader는 거부 된 데이터의 개별 파일을 유지하지만 데이터베이스에 양호한 데이터를 계속 복사하는 트랜잭션 동작입니다. 기본 PostgreSQL 동작은 트랜잭션입니다. 즉, 입력 데이터 (파일 또는 원격 데이터베이스)의 잘못된 행이 테이블의 전체 벌크로드를 중지합니다. pgloader는 또한 데이터 형식 재 지정을 구현합니다. MySQL 날짜 스탬프 0000-00-00 및 0000-00-00 00:00:00을 PostgreSQL로 변환하는 전형적인 예입니다.

NULL

값은 달력에 1 년이 없었기 때문입니다.

pgloader는 LISP로 작성되고 소스 코드로 배포되므로 사용하기 전에 컴파일해야합니다.

희망이 당신을 도울 것입니다 …


답변

실제로 EnterpriseDB 자체에서 개발 한 사용하기 쉬운 무료 마이그레이션 도구가 있습니다. StackBuilder : Migration Toolkit을 통해 설치할 수 있습니다.


답변

나는 최근에 DBConvert의 무료 도구를 사용 하여 액세스 데이터베이스를 postgres로 변환했으며, 무료로 안정적으로 시도하는 데 드는 시간과 비교할 때 돈이 가치가 있다는 것을 알았습니다. MySQL <-> postgres 와 비슷한 도구 판매합니다.이 도구 내가 사용하지 않았지만 명령 줄 도구에만 관심이 없다면 고려할 가치가 있습니다.

내가 어떤 식 으로든 그들과 제휴하지 않았다고 궁금한 경우 🙂


답변

예를 들어 EnterpriseDB 마이그레이션 마법사를 사용할 수 있습니다.

OracleDB를 올바르게 마이그레이션 할 수 있습니다. 그러나 MySQL의 경우 몇 가지 제한 사항이 있습니다. 예를 들어 뷰, 트리거, 저장 프로 시저를 지원하지 않습니다.

자세한 내용은 EDB 마이그레이션 툴킷을 참조하십시오 . 확실하지 않지만 저장 프로 시저를 저장하는 경우 mysql-> oracle-> postgresql을 마이그레이션하여 가능할 수 있습니다 (있는 경우).

이 주제 파악 : 데이터베이스 및 SQL 마이그레이션 도구


답변

이것은 기존 답변에 추가하는 것이므로이 솔루션을 찾는 데 도움이되었습니다. FromMySqlToPostgreSql을 사용 했습니다 . FromMySqlToPostgreSql 을 다운로드하여 추출 하고 샘플 구성 파일의 사본을 작성한 후 db 연결 값을 설정하고 다음 명령으로 색인 파일을 실행하기 만하면 됩니다.

PHP index.php config.xml

간단하면서도 효과적입니다!


답변

인덱스, fks 및 데이터를 포함하여 MySQL 데이터베이스를 PostgreSQL 데이터베이스로 변환하는 기능을 제공하는 오픈 소스 도구가 있습니다.

https://github.com/ggarri/mysql2psql

이 도구를 사용하면 스키마 변경 사항을 정의하여 런타임시 현재 스키마로 일부 업그레이드를 수행 할 수 있습니다.