【问题标题】:How does liquibase handle execution from multiple users?liquibase 如何处理来自多个用户的执行?
【发布时间】:2014-04-11 04:43:14
【问题描述】:

我们有一个 PostgreSQL 数据库,该数据库一直由单个用户(数据库所有者角色)使用 liquibase 进行更新。我们最近以另一个用户(系统所有者)的身份运行了一个更新命令,并且它注册为好像它是一个新的数据库/模式,这意味着 liquibase 从一开始就试图执行所有变更集,而不仅仅是我们预期的最​​后几个变更集不在 databasechangelog 表中。显然这失败了,因为这些变更集已经作为其他用户应用。然而,它提出了如何处理这个问题。你知道它为什么这样做吗?这是特定于数据库的问题还是 liquibase 级别的问题?或者这根本不是一个问题,我们应该接受作为我们业务流程的一部分,对特定数据库的所有更新都需要由同一用户执行?

【问题讨论】:

  • 也许其他用户在使用变更集文件的副本时运行 liquibase 以致路径不同?整个路径是 id 的一部分!

标签: postgresql liquibase


【解决方案1】:

Liquibase 通过从 DATABASECHANGELOG 表中进行选择来确定运行了哪些变更集。我猜正在发生的事情是新用户具有不同的默认架构,因此正在寻找该表的不同位置。

根据您运行 Liquibase 的方式,有一个 changelogSchemaName 或类似属性来控制 Liquibase 查找表的位置。

【讨论】:

    【解决方案2】:

    看起来 Liquibase 确实与用户无关,并且该信息没有记录在 DATABASECHANGELOG 中,也不需要。

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 2014-04-30
      • 2021-11-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多