2014-04-10 34 views
0

我們有一個PostgreSQL數據庫,它一直由單個用戶(數據庫所有者角色)使用liquibase進行更新。我們最近以另一個用戶(系統所有者)的身份運行更新命令,並將其註冊爲新的數據庫/模式,這意味着liquibase試圖從一開始就執行所有更改集,而不僅僅是我們預期的最​​後幾個那些不在數據庫更改日誌表中。顯然這失敗了,因爲這些變更集已經被用作其他用戶。但是,它提出瞭如何處理這個問題。你知道它爲什麼這樣做嗎?這是一個數據庫特定的問題,還是在liquibase級別的問題?或者這是一個問題,我們應該接受作爲我們業務流程的一部分,對特定數據庫的所有更新都需要由同一用戶執行?liquibase如何處理來自多個用戶的執行?

+0

Mabye其他用戶在使用變更集文件的副本時運行liquibase,以便路徑不同?整個路徑是ID的一部分! – Jens

回答

0

Liquibase通過從DATABASECHANGELOG表中選擇來確定哪些changeSet已經運行。我猜想發生的事情是新用戶具有不同的默認模式,因此正在尋找該表的不同位置。

根據您運行Liquibase的方式,有一個changelogSchemaName或類似的屬性來控制Liquibase查找表的位置。

0

似乎Liquibase所做的是用戶不可知的,並且該信息在DATABASECHANGELOG中不記錄也不需要。

相關問題