gpt4 book ai didi

spring-boot - Spring Boot 项目中的 Liquibase 模块和变量

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

我在我的项目中使用 liquibase,这是我的配置文件之一:

databaseChangeLog:
- changeSet:
id: 123
author: m.rybalkin
changes:
- update:
columns:
- column:
name: code
value: '123'
schemaName: prod
tableName: config_bundle
where: code='321'
这是我的“liquibase”模块的 build.gradle:
group 'com.project.test'
version '0.1.0'

buildscript {
dependencies {
classpath "org.liquibase:liquibase-gradle-plugin:${liqubasePluginVersion}"
classpath "gradle.plugin.com.avast.gradle:gradle-docker-compose-plugin:${gradleDockerComposePluginVersion}"
}
}

apply plugin: 'java'
apply plugin: 'org.liquibase.gradle'
apply plugin: 'com.avast.gradle.docker-compose'

dependencies {
liquibaseRuntime "org.liquibase:liquibase-core:${liquibaseCoreVersion}"
liquibaseRuntime "org.postgresql:postgresql:${postgresqlVersion}"
}

liquibase {
activities {
main {
def file = new File("${projectDir}/liquibase.properties")
if (file.exists()) {
def props = new Properties()
InputStream is = new FileInputStream(file)
props.load(is)
is.close()

changeLogFile props['changeLogFile']
outputFile 'liquibase/sql-migration-bundle.sql'
url props['url']
username props['username']
password props['password']
} else {
println "Add ${projectDir}/liquibase.properties if you want use liquibase plugin"
}
}
dockerPostgres {
changeLogFile "${projectDir}/changelog/changelog-master.yml"
url 'jdbc:postgresql://localhost:5555/test'
username 'test'
password 'test'
}
runList = 'main'
}
}

task localUpdate(dependsOn: "composeUp") {
doFirst {
liquibase.setProperty("runList", "dockerPostgres")
}
finalizedBy update
}

task localDropAll(dependsOn: "composeUp") {
doFirst {
liquibase.setProperty("runList", "dockerPostgres")
}
finalizedBy dropAll
}
我的模式有两个不同的名称,一个用于生产的“prod”和一个用于测试的“test”。
当我测试我的应用程序和部署它时,是否可以在我的 application.yml 或 build.gradle 中设置一个变量来更改名称?
附言我的 Spring 应用程序也有两个不同的配置文件——“prod”和“test”

最佳答案

你当然可以添加properties在 liquibase 运行时(可以从 gradle、直接从命令行等传入)。
例如,您可以在 CLI 上调用 liquibase:
liquibase -Durl=更新

关于spring-boot - Spring Boot 项目中的 Liquibase 模块和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64341983/

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