Flyway Db 내부에는 스키마의 모든 개체를 삭제한다는 명령이 있는데 '청소'라는 명령이 있습니다.flywaydb : 우발적 인 청소를 멈추는 방법
구성된 스키마에있는 모든 개체 (테이블, 뷰, 프로 시저, 트리거 등)를 삭제합니다. 스키마는 schemas 속성에 지정된 순서대로 정리됩니다.
필요성이있을 때까지 실수로 아무도 사용하지 못하도록 어떻게 비활성화 할 수 있습니까?
Flyway Db 내부에는 스키마의 모든 개체를 삭제한다는 명령이 있는데 '청소'라는 명령이 있습니다.flywaydb : 우발적 인 청소를 멈추는 방법
구성된 스키마에있는 모든 개체 (테이블, 뷰, 프로 시저, 트리거 등)를 삭제합니다. 스키마는 schemas 속성에 지정된 순서대로 정리됩니다.
필요성이있을 때까지 실수로 아무도 사용하지 못하도록 어떻게 비활성화 할 수 있습니까?
명령 줄에서 당신의 최선의 선택이 자신과 이동 경로의 스크립트를 래핑하는 것입니다. "깨끗한 (..) 할 수 있습니다 다음 clean 명령없이 조합 그것.
가장 간단한 방법은 데이터베이스의 권한을 관리하고 이동 경로 사용자에게 삭제 작업을 거부하는 것입니다.
데이터베이스 구성에 손이없고 Java Api를 사용하지 않는 경우 다음 pointcut "execution (public * org.flywaydb.core.Flyway.)에서 Around 권고 자와 예외를 발생시키는 Aspect를 작성할 수 있습니다. (테스트하지)
를 참조하지만 기본 명령 줄에서 만하고 있어요, 거기에서 방법이 있나요 내가 많은 오류 병합 실행 볼 수 있습니다 문을 정상적으로 AQT 실행에 비해 거기에 잘 작동합니다 .... –
그래서 유일한 방법은 데이터베이스의 사용자의 권한을 드롭 명령을 거부하기 위해 관리하는 것입니다. – Chaya
JRF의 코멘트 차단 대답으로 추가하는 것이 더 유용합니다.
다를 수 있습니다 flyway.conf 다른 환경 용 파일 및 설정 flyway.cleanDisabled = true/false. 구성 파일 옵션을
를 사용하여 이동 경로 명령 :
예를 들어 지금>flyway -configFile=path/to/myAlternativeConfig.conf clean
, 이것은 당신이 분리 및 청소 사용의 유연성을 가질 수 있도록해야한다. 마찬가지로 당신은 dev에 환경을 청소하고 찌르다에 해제 할 수 있습니다.
4.0 버전에서는 cleanDisabled 플래그를 설정하여 제거를 비활성화 할 수 있습니다. 치어에서
<cleanDisabled>false</cleanDisabled>
내가가는 길. 나는 Chaya의 대답이 지적한대로 (내 진실한 사람들의 단일 지점) 나의 데이터베이스에 대한 통제권을 양보하지 않는 것을 선호한다. 래퍼 스크립트는 dev, test, staging (정리 허용) 및 production (정리 허용 안 됨) 스키마 목록과 같은 구성 비트와 결합 될 수 있습니다. – Drumbeg
Flyway에는 cleanDisabled 옵션이 있습니다. https://flywaydb.org/documentation/gradle/clean – jrf