2014-11-04 2 views
3

Flyway Db 내부에는 스키마의 모든 개체를 삭제한다는 명령이 있는데 '청소'라는 명령이 있습니다.flywaydb : 우발적 인 청소를 멈추는 방법

구성된 스키마에있는 모든 개체 (테이블, 뷰, 프로 시저, 트리거 등)를 삭제합니다. 스키마는 schemas 속성에 지정된 순서대로 정리됩니다.

필요성이있을 때까지 실수로 아무도 사용하지 못하도록 어떻게 비활성화 할 수 있습니까?

답변

2

명령 줄에서 당신의 최선의 선택이 자신과 이동 경로의 스크립트를 래핑하는 것입니다. "깨끗한 (..) 할 수 있습니다 다음 clean 명령없이 조합 그것.

+0

내가가는 길. 나는 Chaya의 대답이 지적한대로 (내 진실한 사람들의 단일 지점) 나의 데이터베이스에 대한 통제권을 양보하지 않는 것을 선호한다. 래퍼 스크립트는 dev, test, staging (정리 허용) 및 production (정리 허용 안 됨) 스키마 목록과 같은 구성 비트와 결합 될 수 있습니다. – Drumbeg

+5

Flyway에는 cleanDisabled 옵션이 있습니다. https://flywaydb.org/documentation/gradle/clean – jrf

1

가장 간단한 방법은 데이터베이스의 권한을 관리하고 이동 경로 사용자에게 삭제 작업을 거부하는 것입니다.

데이터베이스 구성에 손이없고 Java Api를 사용하지 않는 경우 다음 pointcut "execution (public * org.flywaydb.core.Flyway.)에서 Around 권고 자와 예외를 발생시키는 Aspect를 작성할 수 있습니다. (테스트하지)

+0

를 참조하지만 기본 명령 줄에서 만하고 있어요, 거기에서 방법이 있나요 내가 많은 오류 병합 실행 볼 수 있습니다 문을 정상적으로 AQT 실행에 비해 거기에 잘 작동합니다 .... –

+0

그래서 유일한 방법은 데이터베이스의 사용자의 권한을 드롭 명령을 거부하기 위해 관리하는 것입니다. – Chaya

0

JRF의 코멘트 차단 대답으로 추가하는 것이 더 유용합니다.

다를 수 있습니다 flyway.conf 다른 환경 용 파일 및 설정 flyway.cleanDisabled = true/false. 구성 파일 옵션을

를 사용하여 이동 경로 명령 :
예를 들어 지금>flyway -configFile=path/to/myAlternativeConfig.conf clean

, 이것은 당신이 분리 및 청소 사용의 유연성을 가질 수 있도록해야한다. 마찬가지로 당신은 dev에 환경을 청소하고 찌르다에 해제 할 수 있습니다.

관련 문제