응용 프로그램 개발 프레임워크/ ORM 공급자는 종종 마이그레이션을 지원하지만 대부분의 경우 개발 시간에 신속한 프로토타이핑에 사용되며 프로덕션 사용 요구 사항을 충족하지 못합니다. 예를 들어 최대 절전 모드에는 다양한 설정을 가질 수있는 옵션 hbm2ddl이 있습니다. 그 중 하나는 hbm2ddl = 업데이트입니다. 이렇게 하면 최대 절전 모드는 응용 프로그램의 엔터티에 맞게 스키마를 만들거나 수정하는 데 필요한 DDL 문을 자동으로 실행하지만 이러한 문을 실행하면 데이터가 손실될 수 있습니다. 자세한 내용은 공식 문서를 참조하십시오. 이 경우 변경 집합을 적용하기 전에 사전 조건이 확인됩니다. 전체 데이터베이스 업그레이드의 전제 조건이 됩니다. 항상 충분하다면 변경 집합당 하나의 전제 조건이 너무 쉬울 것입니다. 실제 시나리오에는 종종 조금 더 필요합니다. 다행히 preConditions 태그에는 논리 연산자와 함께 결합된 여러 필수 구성 조건이 포함될 수 있습니다.

이 게시물에서는 데이터베이스 마이그레이션 플러그인 및 Grails와 함께 사용할 때 사전 조건 기능및 모양에 대한 간략한 개요를 제공합니다. 위의 예제에서 변경 집합은 사전 조건이 통과하는 경우에만 실행되며, 조건이 실패하면 수행해야 할 작업을 지정할 수 있습니다. 우리의 경우 우리는 liquibase 실행 되는 것으로 표시 되도록 실행으로 표시 합니다. HALT, CONTINUE, WARN, MARK_RAN과 같은 실패 이벤트에서 다른 작업을 수행할 수 있습니다. 이 문서는 매우 좋으며 제약 조건 및 인덱스와 같은 다른 변경 집합의 예도 찾을 수 있습니다. 도움이 되기를 바랍니다 다음 사용자 지정 사전 조건을 사용하여 테이블의 열에 이 제약 조건의 이름을 알지 못해도 외래 테이블에 대한 외래 키 제약 조건이 있는지 확인할 수 있습니다. 중첩 및 태그 가 가능하거나 태그가 아닙니다. 예제는 위에서 찾을 수 있습니다. 아주 간단한 기능. 다음 예제에서는 전제 조건을 not 요소에 중첩하여 사용자 지정 사전 조건에 대한 잘못된 평가를 기대하므로 실제로 조건을 만들기 전에 `외래 키가 존재하지 않는` 사전 조건을 얻을 수 있습니다. 위의 예제보다 더 의미가 오라클 또는 MySQL에서 실행해야합니다.