en
지원하는 언어
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI 번역
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Postgres에서 MySQL로 마이그레이션

개요

Easy Redmine 서버 관리자를 위해 Postgres에서 MySQL로 DB 마이그레이션을 위한 몇 가지 도구를 테스트했습니다.

하나는 무료 오픈 소스이지만 오래되고 심각한 단점이 있습니다. 다른 것들은 프리미엄 도구 였고, 우리의 의견으로는 구매할 가치가있는 결과를 얻었습니다.

무료 옵션-pg2mysql PHP 스크립트

부인 성명: 이 도구는 타사에 의해 개발되었습니다 => Easy Software의 제품이 아니므로 보증되지 않습니다.
테스트 된 도구는 다음에서 사용할 수 있습니다.
http://www.lightbox.ca/pg2mysql.php
우리는 PHP 7.4에서 작동하도록 도구를 직접 수정했습니다. 그러나 사용은 여전히 ​​자신의 책임이며 당사는 어떠한 보증도 제공하지 않습니다.

마이그레이션 단계

1. 스크립트를 다운로드하고 아카이브 압축을 풉니다.

wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (저자의 원본 스크립트 포함)
wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (php 버전 7.4 용으로 수정 된 스크립트 포함)

tar -xvf pg2mysql-1.9.tar.bz2(저자 원본의 경우)
pg2mysql-1.9.zip의 압축을 풉니 다 (php 버전 7.4 용으로 수정 된 스크립트의 경우)

2. PHP 설치

sudo apt 설치 php7.4-cli (수정 된 스크립트의 경우)

3. .sql 형식으로 PostgreSQL 데이터베이스 덤프를 생성하고 "--format p --inserts"를 사용해야합니다.

sudo -u postgres pg_dump --format p --inserts DBNAME_HERE> /path/to/file.sql

4. pg2mysql-1.9 폴더로 전환합니다.

cd pg2mysql-1.9 /

5. 실행

PHP pg2mysql_cli.php /path/to/pd/dump/file.sql /path/where/to/save/mysql/file.sql

다음과 같은 일부 라인이 표시됩니다.

완료되었습니다! 30820 라인 5539 SQL 청크

배송 시 요청 사항:
 -아니 완벽하지 않아
 -예, 모든 저장 프로 시저를 삭제합니다.
 -예, CREATE TABLE 및 INSERT INTO를 제외한 모든 쿼리를 삭제합니다. 
 -예 : info [AT] lightbox.org에서 제안 사항을 이메일로 보낼 수 있습니다.
    -이메일에 Postgres 코드와 예상되는 MySQL 코드를 포함하세요.
 -postgres 덤프를 만드는 데 문제가있는 경우 "--format p --inserts"를 사용해야합니다.
 -지정되지 않은 경우 기본 출력 엔진은 MyISAM입니다. "

6. 이제 SQL 덤프가 수정된 파일이 생성됩니다. 모든 곳에서 MyISAM을 InnoDB로 교체할 것을 강력히 권장합니다.

7. 이제이 덤프를 깨끗한 mysql 데이터베이스로 복원 할 수 있습니다.

8. (작성자가 알려준 대로) 스크립트는 인덱스를 저장하지 않기 때문에 모든 테이블에 인덱스를 수동으로 추가해야 합니다. (인덱스 없이 작동하지만 심각한 성능 문제가 발생할 수 있습니다.) 일반 Easy Redmine 애플리케이션에서 생성된 MySQL 테이블에 있어야 하는 모든 인덱스 목록이 있습니다. 수동으로 추가하거나 자체 사용자 지정 스크립트를 통해 추가해야 합니다.

웹에서 사용할 수있는 다른 무료 도구가 있습니다. 그러나 우리의 테스트 결과는 이들에 대해 만족스럽지 않았습니다.

프로젝트 관리 업그레이드

귀하의 필요에 맞게 조정하고 완벽한 개요를 제공하는 차세대 Redmine 기능을 얻으십시오.

프리미엄 도구-MySQL 및 PostgreSQL v. 4.3.5 용 DB 변환

우리는 3 가지 프리미엄 도구를 모두 테스트했습니다. DBConvert가 가장 적합하다고 느꼈으므로 이에 대한 자세한 단계를 설명합니다.

준비 :

1. 외부에서 MySQL 및 PostgreSQL 데이터베이스에 모두 액세스할 수 있는지 확인합니다. (일시적으로 허용할 수 있습니다).

2. 사용자와 암호로 DB에 로그인 할 수 있는지 확인하십시오.

3. 다음에서 도구를 설치합니다. - https://dbconvert.com/postgresql/mysql/

변환 시작 :

1. 마법사를 시작합니다.

2. 소스 데이터베이스를 선택합니다.
PostgreSQL
호스트 이름 : postgres db가 설치된 서버의 IP 또는 도메인 이름입니다.
포트 : 기본값과 다른 경우
사용자 이름 : 변환하려는 db에 액세스 할 수있는 사용자 이름
비밀번호 : 위 사용자의 비밀번호입니다.

연결 테스트 버튼을 클릭합니다. 앱은 선택한 사용자와 비밀번호로 소스 DB 서버에 연결할 수 있는지 확인합니다. 가능하면 데이터베이스 목록이 업로드됩니다. 올바른 데이터베이스를 선택하십시오.

3. "다음"을 클릭합니다.. 앱은 postgres에 연결하고 데이터베이스에서 사용 가능한 테이블 목록을 수신합니다. 변환할 항목을 모두 선택하거나 그 중 하나만/몇 개만 선택할 수 있습니다.

4. 잠시 기다리면 다음 단계 인 MySQL 연결 설정으로 이동합니다.
호스트 이름 : mysql db가 설치된 서버의 IP 또는 도메인 이름입니다.
포트 : 기본값과 다른 경우
사용자 이름 : 변환하려는 db에 액세스 할 수있는 사용자 이름
비밀번호 : 위 사용자의 비밀번호입니다.

연결 테스트 버튼을 클릭합니다. 앱은 선택한 사용자와 비밀번호로 소스 DB 서버에 연결할 수 있는지 확인합니다. 가능하면 데이터베이스 목록이 업로드됩니다. 올바른 데이터베이스를 선택하십시오.

5. 다음 단계에서 애플리케이션은 소스 데이터베이스를 확인하고 가능한 문제를 해결하는 방법에 대한 몇 가지 권장 사항을 제공합니다.

우리는 다음 문제를 만났습니다.

테이블 "변경"필드 "작업". 원래 DB에서는 "CHAR (1)"유형이었습니다. 그러나 기본값은 ''이므로 Mysql은 유효하지 않다고 가정했습니다. 새로운 유형을 선택할 수 있습니다. CHAR (2)를 선택하고 다음을 클릭합니다. 문제가 해결되었습니다.

문제가있는 다른 필드에 대해 유사한 작업을 반복합니다.

6. 다음을 한 번 더 클릭합니다. 응용 프로그램은 총 진행 상황과 현재 진행 상황을 보여주는 변환을 시작합니다. 변환이 완료될 때까지 기다리십시오.

7. "종료"를 클릭합니다. 변환이 완료되었습니다.

이 도구의 작성자는 유료 고객을 지원합니다.

가격 : $ 149 (XNUMX 회)

기타 프리미엄 옵션

또한 이러한 도구의 평가판도 테스트했습니다. 이에 대한 일반적인 의견은 다음과 같습니다.

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    데이터베이스 연결에 문제가 없습니다 (추가 드라이버를 설치하거나 어떤 식 으로든 설정할 필요가 없음). 평가판 있음 (평가판 모드에서는 테이블 당 50 개의 레코드 만 복사하지만 모든 행을 확인하고 전체 데이터베이스가 복사 된 것처럼 동일한 진행률을 표시 함). 내부 디버거가 있으며 마이그레이션과 관련된 가능한 문제를 보여줍니다. 마이그레이션 중에 적용 할 수있는 다양한 옵션이 있습니다. 유료 고객을위한 연중 무휴 지원을 제공합니다. UI 만, Windows 로 작성되어야 합니다.
    가격 $ 49 (XNUMX 회).
  • ESF 데이터베이스 마이그레이션 툴킷 (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    데이터베이스 연결에 문제가 없습니다 (추가 드라이버를 설치하거나 어떤 식 으로든 설정할 필요가 없음). 평가판이 있습니다 (평가판 모드에서는 50000 개의 레코드 만 복사합니다). 내부 디버거가 있으며 마이그레이션과 관련된 가능한 문제를 보여줍니다. 마이그레이션 중에 적용 할 수있는 다양한 옵션이 있습니다. 유료 고객을위한 연중 무휴 지원을 제공합니다. UI 만, Windows 로 작성되어야 합니다.
    가격 $ 322 (XNUMX 회).

30일 무료 평가판으로 Easy Redmine을 사용해 보세요

지리적 위치에서 모든 기능, SSL 보호, 일일 백업