2017-02-03 4 views
3

저는 Liquibase를 사용하기 시작했습니다. ./mvnw compile liquibase:diff은 기존 인덱스를 삭제하고 생성 된 변경 집합이 이미 존재할 경우 생성되는 이유는 무엇입니까?Liquibase는 항상 인덱스 생성/삭제를위한 변경 집합을 생성합니다.

예 :

아마 "게으름"중
<changeSet author="me (generated)" id="1486157347995-13"> 
     <dropIndex indexName="my_idx" tableName="notification"/> 
     <createIndex indexName="my_idx" tableName="notification"> 
     <column name="index_col"/> 
     </createIndex> 
</changeSet> 

답변

2

.

이렇게하면 생성 된 색인이 참조 데이터베이스의 색인과 동일하지만 (이름뿐 아니라 사용 된 열) 쉽게 만들 수 있습니다.

는 한 두 가지 경우 DIFF 처리 : 대상 DB에

  • 누락 인덱스 이름
  • 동일한 인덱스 이름이지만 다른 정의와.
+0

위대한 의견을 부탁드립니다. 시간이 있다면 - 또 다른 질문 : 얼마나 자주 새로운 changelog를 생성해야합니까? DB에 대한 업데이트가있을 때마다? 또는 기존 변경 로그에 새로운 시퀀스 나 열을 추가하는 등의 작은 변경 사항을 추가 할 수 있습니까? 그게 그렇게 중요한 건가? 감사! – Dayna

+0

개인적으로 필자는 각 릴리스마다 diff를 생성합니다. 이들은 바이너리를 따라 산출물로 패키지됩니다. liquibase가 개발자 db에서 직접 스키마를 빌드하고 업데이트 할 수 있기 때문에 개발 중 diffing이 덜 유용하다는 것을 알게되었습니다. –

+0

아, 알겠습니다. 좋아, 고마워! – Dayna