2013-05-23 2 views
0

는 이동 경로/liquibase에 대한 나의 이해를 바탕으로, 그들은 (등 SQL 쿼리, 자바 파일) 사전 구성 스크립트를 통해 데이터베이스 업그레이드를 수행 할 수있는 방법을 제공합니다. 하지만 난 매우 분명 다음에 대한 아니다 : 파괴적인 업그레이드가있는 경우 어떻게됩니까flyway/liquibase는 서비스중인 파괴적인 업그레이드를 어떻게 처리합니까?

  1. .

    나는 일 유형으로 BIGINT 컬럼 (포함하는 데이터)를 변경하는 등 사용 사례가있다. 직접 변경하려고하면 열에 대한 손상된 데이터로 끝날 것입니다. flyway/liquibase는 이러한 종류의 업그레이드를 어떻게 처리합니까?

  2. 사전 구성 여부 스크립트는 이동 경로가 /이 내 변경하거나 그 문제에 대한 모든 다른 방법이 있다는 것을 liquibase 말할 수있는 유일한 방법입니다. 다른 방법이 있다면, diff 형태로 쿼리를 출력 할 것인가? 누군가가 위에 빛을 창고 경우

그것은 매우 도움이 될 것입니다.

답변

0

, 그것은 처음부터 SQL과 자바 지원으로 지어졌습니다. 이 중 하나를 사용하여 db를 마이그레이션하는 방법은 귀하의 책임입니다. 당신이 말하는대로 이동 경로가 그렇게 할 것입니다.

+0

악셀, 감사합니다. 자바 기반의 마이그레이션에 대한 귀하의 문서를 바탕으로 [여기] (http://flywaydb.org/documentation/migration/java.html), 내가 내 첫 번째 질문에 언급 된 것과 같은 파괴적인 업그레이드를 처리 할 수 ​​jdbcMigrations을 구현해야 할 것 같다. 이러한 경우 마이그레이션이 진행 중일 때 어떻게 동적 (새) 삽입/업데이트를 처리 할 수 ​​있습니까? 이 취급에 사용할 수있는 이동 경로의 처리/구성이 있습니까? 즉, flyway가 파괴적인 업그레이드를 처리 할 수있는 메커니즘을 제공하는지 아니면 구성된 스키마/스키마에 대해 제공된 쿼리를 실행하기위한 프레임 워크인지를 제공합니다. – Sai

+0

마술은 없습니다. 그것은 당신이하도록 지시 한 것을합니다. 귀하의 경우에는 다음과 같은 여러 단계를 거쳐야합니다. 새 형식으로 새 열을 추가하고, 데이터를 마이그레이션하고, 코드를 새로운 형식과 열로 변경하고, 이전 열을 삭제하십시오. –

+0

Axel, 그건 의미가 있습니다. 따라서 마이그레이션하는 동안 발생하는 삽입/업데이트/삭제 작업을 처리하는 방법은 내게 달려있다. 그리고 flyway는 같은 핸들러/설정을 지원하지 않습니다, 그렇죠? – Sai

0

Liquibase에서 SQL Formated 스크립트를 사용하여이 작업을 수행 할 수 있습니다. XML 마크 업 태그를 사용하여 원시 SQL을 수행하지 않고 XML 변환 작업을 수행하는 것을 피하려고합니다. 너는하고 싶어. 더 쉬워지고 SQL 스크립트를 사용하고 Liquibase를 활용하십시오. 철새 이동 경로의 관점에서 말하기

관련 문제