gpt4 book ai didi

gradle - Liquibase Groovy Accessomg datebaseChangeLog属性

转载 作者:行者123 更新时间:2023-12-03 05:11:35 24 4
gpt4 key购买 nike

我有以下用Groovy编写的Liquibase脚本。

package data.db

databaseChangeLog {

// H2
property(name: "date", value: "DATETIME", dbms: "h2")
property(name: "integer", value: "INTEGER", dbms: "h2")
property(name: "bigint", value: "BIGINT", dbms: "h2")
property(name: "current_date", value: "NOW()", dbms: "h2")
property(name: "current_timestamp", value: "NOW()", dbms: "h2")

// TABLES
include(file: "tables/2017-06-22-001-user-account-tables.groovy", relativeToChangelogFile: true)
}

我正在使用Gradle进行构建,并且包含了 compile "org.liquibase:liquibase-groovy-dsl:1.2.2",因此脚本本身可以工作。

但是,我不知道如何在脚本中访问这些databaseChangeLog属性。我找不到有关如何执行操作的文档和示例。

使用xml非常简单,这是 documentation with an example

如何使用Groovy做到这一点?

最佳答案

好的,我找到了一个可行的解决方案,但似乎有点笨拙。如果有这样的事情,请推荐一些更好的东西:

final DatabaseChangeLog dcl = (DatabaseChangeLog) properties['databaseChangeLog'];
final String bigintType = dcl.changeLogParameters.getValue("bigint", dcl)

这里是一些上下文:
package data.db.tables

import liquibase.changelog.DatabaseChangeLog

databaseChangeLog {

final DatabaseChangeLog dcl = (DatabaseChangeLog) properties['databaseChangeLog'];
final String bigintType = dcl.changeLogParameters.getValue("bigint", dcl)

changeSet(id: "2017-06-22-001-user-account-tables", author: "goranmrzljak") {
comment("User account tables")

createTable(tableName: "user_account_permission") {
column(name: "id", type: bigintType) {
constraints(primaryKey: true, primaryKeyName: "user_account_permission_pk")
}

// ...
}

// ...
}
}

这可以在定义属性的相同文件或 databaseChangeLog中使用,也可以在不同的文件或 databaseChangeLog中使用。

关于gradle - Liquibase Groovy Accessomg datebaseChangeLog属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44746661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com