Postgresql 如何为changelog表指定架构位置

Postgresql 如何为changelog表指定架构位置,postgresql,gradle,liquibase,Postgresql,Gradle,Liquibase,有没有办法指定liquibase创建数据库变更记录表(databasechangelog和databasechangeloglock)的模式 我正在使用postgresql和gradle。我为我的应用程序(例如myapplication)定义了一个架构 当我从gradle运行liquibase update任务时,特定于应用程序的表是在“myapplication”模式中正确创建的,但liquibase changelog内容是在“public”模式中创建的。文档中没有介绍,但在liquibas

有没有办法指定liquibase创建数据库变更记录表(databasechangelog和databasechangeloglock)的模式

我正在使用postgresql和gradle。我为我的应用程序(例如myapplication)定义了一个架构


当我从gradle运行liquibase update任务时,特定于应用程序的表是在“myapplication”模式中正确创建的,但liquibase changelog内容是在“public”模式中创建的。

文档中没有介绍,但在liquibase的当前版本中可用(我不确定这适用的时间有多长)是命令行参数

--liquibaseCatalogName

使用这些将允许您将“托管模式”和“液化模式”分开

对于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创建
liquibaseSchemaName
?Liquibase当前没有可以创建新架构的命令。如何使用java实现这一点?在属性文件中?我想将我的模型模式从liquibase表schemaEdited中分离出来,以便在属性文件上添加部分。
liquibaseSchemaName=myLiquibaseSchema