Liquibase changelog не работает в весенней загрузке - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь запустить API Springboot и настроить базу данных с использованием liquibase.

Проблема здесь в том, что я выполнил все шаги, описанные в нескольких руководствах, но журнал изменений никогда не выполнялся.

Код:

Конфигурация Gradle:

group = 'com.strixtools'
version = '0.0.1-SNAPSHOT'

description = """Strix Tools"""

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
         classpath "org.springframework.boot:spring-boot-gradle-plugin:2.1.1.RELEASE"
         classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.20.1"
    }
 }

group = 'strixtools'

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'com.palantir.docker'

bootJar {
    baseName = 'gs-spring-boot-docker'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    configurations.all {
        exclude module: "spring-boot-starter-logging"
        exclude module: "logback-classic"
    }
    compile ('org.springframework.boot:spring-boot-starter:2.1.1.RELEASE')
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version:'2.1.1.RELEASE'
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:'2.1.1.RELEASE'
    compile group: 'org.springframework.boot', name: 'spring-boot-devtools', version:'2.1.1.RELEASE'
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-security', version:'2.1.1.RELEASE'
    compile group: 'org.springframework.security.oauth.boot', name: 'spring-security-oauth2-autoconfigure', version: '2.1.1.RELEASE'
    compile group: 'org.apache.commons', name: 'commons-lang3', version:'3.4'
    compile group: 'io.jsonwebtoken', name: 'jjwt', version:'0.9.0'
    compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version:'2.6.5'
    compile group: 'org.liquibase', name: 'liquibase-core'
    compile group: 'com.h2database', name: 'h2', version:'1.4.196'
    runtime group: 'org.postgresql', name: 'postgresql'
    testCompile(group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:'2.1.1.RELEASE')

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version:'2.1.1.RELEASE'

}

task stage {
    dependsOn build
}

task unpack(type: Copy) {
    dependsOn bootJar
    from(zipTree(tasks.bootJar.outputs.files.singleFile))
    into("build/dependency")
}
docker {
    name "${project.group}/${bootJar.baseName}"
    copySpec.from(tasks.unpack.outputs).into("dependency")
    buildArgs(['DEPENDENCY': "dependency"])
}

aplication.yml

strix-api:
   host: https://aaa.com
   client: asdasdasfasdf
   secret: afadsfsdaf
   user: afdadsfsadf
   pass: afadsfsdafsdaf

---  

spring: профили: локальные

  datasource:
    url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
    username: sa
    password:

  liquibase:
    change-log: classpath:db/changelog-master.xml
    enabled: true
    drop-first: true

  jpa:
    hibernate:
      ddl-auto: none
    show-sql: true
  h2:
    console:
      enabled: true

и моя SpringAplicationкласс

@SpringBootApplication
public class StrixToolsApplication {

     public static void main(String[] args) {
        SpringApplication.run(StrixToolsApplication.class, args);
    }

    //TODO: we should move this to another side
    @Bean(name = "messageSource")
    public ReloadableResourceBundleMessageSource messageSource() {
         ReloadableResourceBundleMessageSource messageBundle = new ReloadableResourceBundleMessageSource();
        messageBundle.setBasename("classpath:messages/messages");
        messageBundle.setDefaultEncoding("UTF-8");
        return messageBundle;
    }


    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

Проблема в том, что ликвидазу никогда не исполняют.Если я изменю название журнала изменений на другое, оно даже не выдаст ошибку.

Спасибо за вашу помощь С уважением

1 Ответ

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

Может быть, вы упускаете правильную версию жидкости. Попробуйте с 2.0.1. Здесь у вас есть небольшой пример: (вы можете реорганизовать нотацию, которую вы используете для версий и групп).

    apply plugin: 'liquibase'

    plugins {
        id 'io.spring.dependency-management' version '1.0.5.RELEASE'
        id 'org.liquibase.gradle' version '2.0.1'

    }
ependencies {
    implementation('org.springframework.boot:spring-boot-starter-actuator')
    implementation('org.springframework.boot:spring-boot-starter-web')
    implementation('org.springframework.boot:spring-boot-starter-security')
    implementation('org.springframework.boot:spring-boot-starter-data-jpa')
    implementation('org.springframework.boot:spring-boot-starter-validation')
    implementation('org.liquibase:liquibase-core')
    runtime 'mysql:mysql-connector-java'

    liquibaseRuntime group: 'org.liquibase', name: 'liquibase-core', version: liquibaseCoreVersion
    liquibaseRuntime group: 'org.liquibase', name: 'liquibase-groovy-dsl', version: liquibaseGroovyDslVersion
    liquibaseRuntime 'mysql:mysql-connector-java'

}

liquibase {
    activities {
        main {
            changeLogFile 'src/main/resources/db/liquibase-changelog.xml'
            url 'jdbc:mysql://' + System.env.DATABASE_HOST + ':' + System.env.DATABASE_PORT + '/' + System.env.DATABASE_NAME + '?useSSL=false'
            username System.env.DATABASE_USER
            password System.env.DATABASE_PASSWORD
            driver 'com.mysql.jdbc.Driver'

        }
    }
}
...