2016-08-19 3 views
7

저는 Liquibase와 Flyway를 개별적으로 살펴 보았습니다. Liquibase는 개인적인 비교만으로도 우리의 필요에 더 나은 도구로 보입니다. Liquibase와 Flyway를 함께 사용하는 것도 있습니다. 리퀴베이스 (Liquibase)는 모든 플라이 웨이 (Flightway)에 롤백 기능이 있으며 롤백 (Rollback)과 관련하여 더 많은 유연성을 가지고있는 것으로 보입니다. Flyway의 주요 장점은 XML을 사용하지 않아도되는 것처럼 보이지만 Liquibase를 사용하면 XML로 SQL 파일을 지정할 수 있습니다.이동 경로와 liquibase 함께?

기본적으로 Flyway를 사용하면 Liquibase가 Liquibase를 함께 사용하면 어떤 이점이 있는지 명확히 알 수 없습니다. 아마도 Liquibase가 유효한 이동 경로 SQL 파일을 언급하고있는 것처럼 보이지 않을 수도 있습니다. 두 도구 모두 독립적으로 실행해야하며 기술적으로 어느 도구를 사용하더라도 동일한 함정이 있습니다.

답변

16

질문에 답하기 전에 작은 수정. 가정

Liquibase는 모든 이동 경로는

가 정확하지가 갖고있는 것 같아요. 이동 경로는 SQL 구문 분석과 관련하여 빛난다. PL/SQL 패키지 및 프로 시저, MySQL 구분 기호 변경, T-SQL, PostgreSQL 프로 시저 등과 같은 모든 종류의 복잡성을 포함하는 원시 도구로 생성 된 수정되지 않은 SQL 파일을 사용할 수 있습니다 ... Liquibase를 사용하면 개별 구문에서이를 분리해야하지만, SQL 파일에 추가 주석을 추가하십시오.

SQL 파일을 그대로 사용할 수 있다는 점은 잠금을 피하는 것입니다. 기존 SQL 파일을 가져 와서 최소한의 투자로 Flyway를 사용하고 필요가 더 이상 필요하지 않은 경우 나중에 옮길 수 있습니다. Liquibase는 그렇지 않습니다.

다운 마이 그 레이션 (롤백이 아닌 보상 트랜잭션이라고 생각하는) 문제는 실제로 이론적으로 훌륭한 것으로 들리지만 실제로는 거의 필요하지 않습니다. https://flywaydb.org/documentation/faq#downgrade

그러나 하나 또는 둘 모두를 사용하는 경우, 나는 분명히 SteveDonie (Liquibase 팀원)와 동의합니다. 둘 중 하나를 사용하면 거의 항상 더 나은 선택입니다.

면책 조항 : 나는 철새 이동 경로의 창조자에게 나는

+0

와우, 나는 창조자에게서 바로 이것에 대한 결정적인 대답을 기대하지 않았습니다! 감사. 당신은 롤백에 대한 요지가 있으며, 심지어는 리퀴베이스 롤백으로 인해 다른 마이그레이션이 더 많거나 적습니다. 나는 일이 좀 더 친척이되는 연습이 필요하다고 느낍니다. 이것은 다소 수동 프로세스를 대체하기위한 것이므로 실제로 어떤 도구가 더 나은 방법 일 것입니다. 유스 케이스에있는 유스 케이스의 경우, 생산에있어서 어떤 변화가있어 바람직하지 않을 수 있고 역 동작이 필요하다고 느낀다. 롤백은 내 관점에서 볼 때 명령의 이름 일뿐입니다. – Slayer0248

+0

원하는 경우 이름을 바꿀 수 있습니다. 롤백이 방금 채택되었으며 현재 사용중인 것입니다. 내가 추세를 세우지 않았기 때문에 다른 이름을 사용하기 시작하면 아무도 그걸 다른 것으로 부르지 않을 것입니다. 그냥 내 생각. – Slayer0248

+2

안녕하세요, 저는 답변에 심각한 의문점이 있습니다. 메인 페이지에서 마이 그 레이션 도구와 매퍼를 비교하면 mybatis를 플라이웨이와 비교할 수 없으며 테슬라 엔진을 사용하는 사과와 비슷합니다. 그들은 존재한다! 및 공급 업체 잠금 ... 정말요? postgres에서 일반 old (universal, 나는 추측) sql을 가져 와서 oracle에 적용하면 평범한 노인에게 "breeze"라는 결과가 나타날 때까지 얻을 것이다. ans liquibase는 XML에 관한 것뿐만 아니라 docs .. oh my –

4

동의. 나는 그들을 함께 사용하는 것이 좋은 생각이라고 생각하지 않는다.

7

나는 동시에 두 도구의 사용을 권장하지 않을 것입니다. 내 경험상, 하나의 팀 만이 큰 분산 환경 (동일한 DB에 액세스 할 수있는 5 개 팀 이상)에서 충돌/충돌을 일으킬 수 있습니다.

이 큰, 분산 된 팀과 프로젝트에이 도구를 실행에 올 때 나는 또한 당신에게 장점과 단점의 몇 줄 것이다 :

이동 경로 :

단점 : 매우 마이그레이션 파일 변경 사항은 엄격합니다. 다른 사용자가 마이그레이션 파일을 체크인 한 경우 변경하지 않는 것이 좋습니다. 공유 프로젝트에서 git에서 force push를 사용하는 것과 같습니다. 마이그레이션 (내용 또는 파일 이름)을 변경하면 이전 버전의 파일이있는 모든 시스템에서 마이그레이션 실패가 발생합니다. 전체 마이그레이션 팩을 처음부터 다시 시작해야합니다. 어떤 경우에는 많은 시간이 걸릴 수 있습니다.

장점 : 글쎄, 단점으로 묘사 된 내용은 동시에 수준을 향상시킵니다. 여러 팀에 의한 동시 변경을 생산 실행 응용 프로그램에 도입하는 것에 대해 이야기 할 때 합리적인 제한이 될 수 있습니다.

Liquibase :

단점 : 기존 (적용) 마이그레이션을 변경할 수 있도록해야 tweaks의 부부와 함께 . 동일한 코드베이스에서 많은 사람들이 작업하면서 이점이 고려 될 수 있지만 추가주의가 필요합니다. 유연성은 가격으로 제공됩니다. "git force push"스타일의 변경이 분산 프로젝트에 허용 될 때 "회귀"또는 불일치를 쉽게 도입 할 수 있습니다.

장점 : 더 다양하고 유연하게 구성 할 수 있습니다. 미래에 NoSQL을위한 솔루션을 포함 할 수도 있습니다. 몇 가지 유용한 플러그인 (예 : 최대 절전 모드 통합).

관련 문제