如何为更改日志表指定模式位置

Flo*_*ier 2 postgresql liquibase gradle

有没有办法指定liquibase创建数据库更改日志表(databasechangelog和databasechangeloglock)的模式?

我正在使用postgresql和gradle.我为我的应用程序定义了一个模式(例如myapplication).

当我从gradle运行liquibase更新任务时,在'myapplication'模式中正确创建了特定于应用程序的表,但liquibase changelog内容是在'public'模式中创建的.

Ste*_*nie 7

文档中没有涉及,但在当前版本的Liquibase中可用(我不确定适用的范围有多远)是命令行参数

--liquibaseCatalogName
Run Code Online (Sandbox Code Playgroud)

--liquibaseSchemaName
Run Code Online (Sandbox Code Playgroud)

使用这些将允许您将"托管架构"和"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'
}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是属性文件,则您设置的属性与命令行选项的名称相同,因此您可能会这样:

liquibaseSchemaName=myLiquibaseSchema
Run Code Online (Sandbox Code Playgroud)

  • 如何指示 Liquibase 创建 `liquibaseSchemaName`? (2认同)
  • Liquibase 目前没有可以创建新模式的命令。 (2认同)