Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak dapat menghasilkan perbedaan dari plugin liquibase gradle

Solusinya adalah dengan menulis tugas bertahap yang memanggil liquibase diffChangeLog

Buat liquibase.gradle file di direktori root proyek, tambahkan ekstensi liquibase-hibernate dan tulis tugas gradle yang memanggil liquibase diffChangeLog perintah.

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
}

CATATAN:Saya telah menggunakan file properti untuk meneruskan argumen ke perintah liquibase, Anda dapat menambahkan nilai secara langsung, tetapi itu bukan praktik yang baik.

Selanjutnya, Anda perlu menerapkan liquibase.gradle file dari dalam build.gradle . proyek mengajukan. dan tambahkan ketergantungan liquibase

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

Setelah langkah ini, liquibase akan diatur sepenuhnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. FORCE INDEX di MySQL - di mana saya meletakkannya?

  2. Cegah kenaikan otomatis InnoDB PADA KUNCI DUPLICATE

  3. MySQL Insert Command vs T-SQL Query Syntax dengan Contoh

  4. pernyataan persiapan driver golang sql

  5. Driver MySQL PDO di Mac