Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unterschied zum Gradle-Plug-in von Liquibase kann nicht generiert werden

Die Lösung besteht darin, eine Gradle-Aufgabe zu schreiben, die liquibase diffChangeLog aufruft

Erstellen Sie eine liquibase.gradle Datei im Projektstammverzeichnis, fügen Sie die Erweiterung liquibase-hibernate hinzu und schreiben Sie eine Gradle-Aufgabe, die das liquibase diffChangeLog aufruft Befehl.

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
}

HINWEIS:Ich habe Eigenschaftsdateien verwendet, um Argumente an den Befehl liquibase zu übergeben, Sie könnten die Werte direkt hinzufügen, aber das wäre keine gute Praxis.

Als nächstes müssten Sie die liquibase.gradle anwenden Datei aus der build.gradle des Projekts Datei. und fügen Sie die Liquibase-Abhängigkeit hinzu

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

Nach diesem Schritt wäre liquibase vollständig eingerichtet.