如何为变更日志表指定架构位置
How to specify schema location for changelog tables
有没有办法指定 liquibase 创建数据库变更日志表(databasechangelog 和 databasechangeloglock)的模式?
我正在使用 postgresql 和 gradle。我为我的应用程序定义了一个架构(例如 myapplication)。
当我 运行 来自 gradle 的 liquibase 更新任务时,应用程序特定表在 'myapplication' 模式中正确创建,但 liquibase 更新日志内容在 'public' 架构。
命令行参数未包含在文档中,但在当前版本的 Liquibase 中可用(我不确定这适用于多远)
--liquibaseCatalogName
和
--liquibaseSchemaName
使用这些可以让您的 "managed schema" 和 "liquibase schema" 分开。
对于 gradle,我想你会在你的配置块中指定这些:
liquibase {
activities {
main {
changeLogFile 'changelog.groovy'
url 'jdbc:h2:db/liquibase_workshop;FILE_LOCK=NO'
username 'sa'
password ''
changeLogParameters([ myToken: 'myvalue',
second: 'secondValue'])
liquibaseSchemaName 'myLiquibaseSchema'
defaultSchemaName 'myApplicationSchema'
}
second {
changeLogFile 'second.groovy'
url 'jdbc:h2:db/liquibase_workshop;FILE_LOCK=NO'
username 'sa'
password ''
changeLogParameters([ myToken: 'myvalue',
second: 'secondValue'])
}
}
// runList = project.ext.runList
// runList = 'main'
runList = 'main, second'
}
如果您使用的是属性文件,您设置的属性与命令行选项的名称相同,因此您会得到如下内容:
liquibaseSchemaName=myLiquibaseSchema
有没有办法指定 liquibase 创建数据库变更日志表(databasechangelog 和 databasechangeloglock)的模式?
我正在使用 postgresql 和 gradle。我为我的应用程序定义了一个架构(例如 myapplication)。
当我 运行 来自 gradle 的 liquibase 更新任务时,应用程序特定表在 'myapplication' 模式中正确创建,但 liquibase 更新日志内容在 'public' 架构。
命令行参数未包含在文档中,但在当前版本的 Liquibase 中可用(我不确定这适用于多远)
--liquibaseCatalogName
和
--liquibaseSchemaName
使用这些可以让您的 "managed schema" 和 "liquibase schema" 分开。
对于 gradle,我想你会在你的配置块中指定这些:
liquibase {
activities {
main {
changeLogFile 'changelog.groovy'
url 'jdbc:h2:db/liquibase_workshop;FILE_LOCK=NO'
username 'sa'
password ''
changeLogParameters([ myToken: 'myvalue',
second: 'secondValue'])
liquibaseSchemaName 'myLiquibaseSchema'
defaultSchemaName 'myApplicationSchema'
}
second {
changeLogFile 'second.groovy'
url 'jdbc:h2:db/liquibase_workshop;FILE_LOCK=NO'
username 'sa'
password ''
changeLogParameters([ myToken: 'myvalue',
second: 'secondValue'])
}
}
// runList = project.ext.runList
// runList = 'main'
runList = 'main, second'
}
如果您使用的是属性文件,您设置的属性与命令行选项的名称相同,因此您会得到如下内容:
liquibaseSchemaName=myLiquibaseSchema