有没有办法指定liquibase创建数据库更改日志表(databasechangelog和databasechangeloglock)的架构?
我正在使用postgresql和gradle。我为我的应用程序定义了一个模式(例如myapplication)。
当我从gradle运行liquibase更新任务时,在' myapplication'中正确创建了特定于应用程序的表。 schema,但liquibase changelog内容是在' public'中创建的。架构。
答案 0 :(得分:7)
文档中没有涉及,但在当前版本的Liquibase中可用(我不确定适用的距离是多少)是命令行参数
--liquibaseCatalogName
和
--liquibaseSchemaName
使用这些将允许您将“托管架构”和“liquibase架构”分开。
对于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