이기종 마이그레이션을 진행할 일이 생겼다.
여러 방법을 찾아봤는데,
FlyWay
- 장점으로는 내가 좋아하는 Spring Boot에서 쓸 수 있다.
- 하지만 운영 소스 코드를 건드려야 하는데 그건 못하기 때문에 탈락
- Flyway Desktop이라고 이관을 해주는 툴이 있는데
- 결국은 변환된 Script가 필요하다.
- DDL만 수행해주는 것이기 때문에 탈락
- 직접 해봤고, 테이블 이관은 해주는데 데이터 이관까지는 안 해준다. (틀린거 일 수도 있습니다)
- 되면 연락주세요ㅠㅠ
결국은 이런 조건에 맞는 이관 TOOL을 찾게 되었는데..
- 일단 무료
- 오픈 소스
- DDL, DML 까지 이관해주는 자동화 툴
유료 중에는 프로시저나 펑션(함수) 같은 것도 변환해주는 자동화 툴이 있었는데, 비싸기 때문에..
방법으로는
https://www.sqlines.com/online
여기 웹 사이트에 DDL, DML, 프로시저, 함수 등을 입력해서 Script를 따서 진행하는 것도 방법이라고 볼 수 있다. (귀찮다)
단점으로는 제대로 변환이 안 되는 부분이였다.
손이 많이 간다.
Pentaho Data Integration
- 이걸 찾게 되었다.
- 아래는 참고 문서
- https://m.blog.naver.com/jeong2091/222039108612
- 여기 페이지에서
- 공짜 버전을 받자.
- 근데 누르면 다운로드가 아니다.
- 이런 페이지가 뜨는데, 눌러주자
- 또 뭔가 뜨고 다운로드 뜨는데 또 눌러주자
- 근데 다운로드가 안 된다. 당황하지 않고, 아래로 스크롤을 내려준다.
- 이제 누르면 진짜 다운이 된다. (왜 이렇게 복잡하게 해놓았는지..)
- 그러면 위의 링크의 설명 따라서 실행하면 된다.
장점으로는
- DDL, DML 자동으로 이관을 해준다.
- Oracle -> mariadb
- Oracle -> mysql
- 반대로 바뀌어도 가능하고
- 원하는 테이블만 이관할 수 있다는 장점도 있다.
단점으로는
- PK 설정을 따로 해줘야 한다. (대/소문자 맞춰야 한다)
https://m.blog.naver.com/skkong89/222372586802
- COMMENT는 복사가 안 된다. 따로 쿼리를 짜서 해야한다. (테이블 COMMENT, 컬럼 COMMENT)
- 컬럼 DEFAULT 값이 지정이 안 된다.
- NOT NULL 설정이 안 된다.
- 프로시저, 함수 이관은 안 된다.
결론으로는
Pentaho를 통해서 이관을 손쉽게 할 수 있지만.
단점이라고 불리는 것들은 수동으로 처리해줘야 한다는 점.
Oracle의 경우
USER_TAB_COLUMNS
DBA_TAB_COLUMNS
ALL_COL_COMMENTS
테이블의 정보를 참고해서 쿼리를 짜면 어느정도 반자동으로 쿼리를 짤 수 있다.
한마디로 말하면 무료에 이 정도면
장점이 크다.
- 테이블은 완벽하게 이관해주고
- 데이터까지 잘 넘어간다.
- 그리고 나머지 단점들을 세팅해주면 되기 때문에 매우 좋은 툴이라고 생각이 든다.