liquibase如何处理来自多个用户的执行?

时间:2014-04-10 11:40:55

标签: postgresql liquibase

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

2 个答案:

答案 0 :(得分:0)

Liquibase通过从DATABASECHANGELOG表中选择来确定运行了哪些changeSet。我猜的是新用户有一个不同的默认架构,因此在该表的另一个地方寻找。

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

答案 1 :(得分:0)

似乎Liquibase与用户无关,并且DATABASECHANGELOG中不记录也不需要这些信息。