sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att generera skillnad från liquibase gradle plugin

Lösningarna är att skriva en gradle-uppgift som anropar liquibase diffChangeLog

Skapa en liquibase.gradle fil i projektets rotkatalog, lägg till liquibase-hibernate-tillägget och skriv en gradle-uppgift som anropar liquibase diffChangeLog kommando.

configurations {
  liquibase
}

dependencies {
  liquibase group: 'org.liquibase.ext', name: 'liquibase-hibernate4', version: 3.5
}

//loading properties file.
Properties liquibaseProps = new Properties()
liquibaseProps.load(new FileInputStream("src/main/resources/liquibase-task.properties"))

Properties applicationProps = new Properties()
applicationProps.load(new FileInputStream("src/main/resources/application.properties"))

task liquibaseDiffChangelog(type: JavaExec) {
  group = "liquibase"


  classpath sourceSets.main.runtimeClasspath
  classpath configurations.liquibase
  main = "liquibase.integration.commandline.Main"

  args "--changeLogFile=" + liquibaseProps.getProperty('liquibase.changelog.path')+ buildTimestamp() +"_changelog.xml"
  args "--referenceUrl=hibernate:spring:" + liquibaseProps.getProperty('liquibase.domain.package') + "?dialect=" + applicationProps.getProperty('spring.jpa.properties.hibernate.dialect')
  args "--username=" + applicationProps.getProperty('spring.datasource.username')
  args "--password=" + applicationProps.getProperty('spring.datasource.password')
  args "--url=" + applicationProps.getProperty('spring.datasource.url')
  args "--driver=com.mysql.jdbc.Driver"
  args "diffChangeLog"
}

def buildTimestamp() {
  def date = new Date()
  def formattedDate = date.format('yyyyMMddHHmmss')
  return formattedDate
}

OBS:Jag har använt egenskapsfiler för att skicka argument till kommandot liquibase, du kan lägga till värdena direkt, men det skulle inte vara en bra praxis.

Därefter måste du använda liquibase.gradle fil från projektets build.gradle fil. och lägg till liquibase-beroendet

apply from: 'liquibase.gradle'
//code omitted
dependencies {
    compile (group: 'org.liquibase', name: 'liquibase-core', version: "3.4.2")
}

Efter detta steg skulle liquibase ställas in helt.



  1. Hur ansluter man till fjärr MySQL-server via SSH med JPA?

  2. TRANSLATE(… ANVÄNDER) Funktion i Oracle

  3. Är det skillnad på att använda INT(1) vs TINYINT(1) i MySQL?

  4. VÄLJ endast rader som endast innehåller alfanumeriska tecken i MySQL