LiquiBase diff & diffChangeLog не обнаруживает изменений - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать набор изменений с изменениями, которые я сделал в моем @Entity s

У меня есть следующая настройка gradle.Я использую эти плагины liquibase-gradle-plugin liquibase-hibernate

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    compile('org.springframework.boot:spring-boot-starter-hateoas')
    compile('org.springframework.boot:spring-boot-starter-jooq')
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-mail')
    compile('com.github.waffle:waffle-spring-boot-starter:1.9.0')
    compile('com.oracle.jdbc:ojdbc8:12.2.0.1')
    runtime('org.springframework.boot:spring-boot-devtools')
    compileOnly('org.projectlombok:lombok')
    apt('org.projectlombok:lombok:1.18.2')
    liquibaseRuntime('org.liquibase:liquibase-core:3.6.2')
    liquibaseRuntime('org.liquibase:liquibase-groovy-dsl:2.0.1')
    liquibaseRuntime('org.liquibase.ext:liquibase-hibernate5:3.6')
    liquibaseRuntime('com.oracle.jdbc:ojdbc8:12.2.0.1')
    liquibaseRuntime('org.springframework.boot:spring-boot-starter-data-jpa')
    liquibaseRuntime sourceSets.main.output
    providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile('org.springframework.restdocs:spring-restdocs-mockmvc')
}

diff.dependsOn compileJava
diffChangeLog.dependsOn compileJava
generateChangelog.dependsOn compileJava

liquibase {
  activities {
    main {
      changeLogFile 'main.groovy'
      referenceUrl 'jdbc:oracle:thin:@localhost:1521:XE'
      referenceUsername 'user'
      referencePassword 'pass'
      url 'hibernate:spring:com.example' +
                   '?dialect=org.hibernate.dialect.Oracle10gDialect' +
                   '&hibernate.enhanced_id=true'
    }
  }
  runList = 'main'
}

Steps

  1. . \ Gradlew diffChangeLog
  2. . \ Gradlew update
  3. Заметим, что исходная база данных была правильно создана
  4. Заметим, что таблица DATABASECHANGELOG была правильно заполнена
  5. Добавить свойство в @Entity
  6. . \ Gradlew diffChangeLog
  7. Обратите внимание, что в файл main.groovy не было добавлено никаких новых изменений.Вместо этого существующий набор изменений для объекта был изменен.Сделать все совершенно бесполезным!

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Читая вики , вы должны использовать gradle diff для создания файла набора изменений.Используйте gradle diffChangeLog только для первого основного XML.

0 голосов
/ 01 октября 2018

Liquibase генерирует схему не из @entity, а из файлов наборов изменений.

Вы должны разрешить hibernate / jpa / else генерировать схему, а затем использовать команду diffChangeLog.Это позволяет вам генерировать файл набора изменений.

Может быть проще добавить ваши изменения в файл набора изменений параллельно с аннотацией в вашем коде.

...