2012-10-23 33 views
0

我們的表(Oracle數據庫11g)具有由序列生成的PK。這些ID在各個環境中不同步。 如果我對錶A進行了更改,則必須創建一個忽略PK並使用自然鍵的腳本。 因此,例如,如果在DEV中,我更新ID爲102843和paret代碼YU9的零件,則無法針對ID 102843的產品發出更新。我必須爲零件代碼YU9發出更新。 由於表基於ID加入,因此涉及的表越來越複雜。可以使用flyway處理跨數據庫的不同ID

無論如何,我們一直在尋找一種可以爲此生成sql腳本的工具,並讓我的生活更輕鬆噩夢。 Can Flyway? 順便說一句,如果有人知道另一個這樣的產品,我很樂意聽到這件事(我已經與Redgate等談過 (也,不,我無法控制這些序列,並且不能保持它們一致。只是它的方式)

澄清:我不是問我的系統應該如何工作,它是如何工作的,而且這種情況不會很快改變,我只問飛路產品是否可以提供幫助。

回答

0

這聽起來像你有不同環境中複製參考數據。爲什麼在所有使用序列?只是手動分配ID和你的問題就會迎刃而解。

你可以發佈一個重新最終遷移根據自然鍵分配手動ID,然後丟棄序列。

+0

夥計,這是我特別要求的答案:(也是,不,我無法控制這些序列,也不能保持它們一致) – moleboy

+0

看起來好像它我們有一個明顯的誤解。你指定的序列不能被改變。這個解決方案不會改變它們,它只是忽略它們。祝你好運。 –

0

回到問題(在標題中提到):flyway可以跨數據庫處理不同的ID嗎? 我們有兩個不同的表有不同的數據庫,但是我們想把第一個數據庫的一些表/列映射到第二個數據庫的其他表/列。主要的問題是,ID不一樣。那麼是否有一種方法來定義ids應該如何映射一方面我們有一個複合主鍵,但另一方面我們有一個自動遞增的ID?

0

經過多次爭論,我們最終擺脫了其他環境中的序列。基本上,我們將PROD克隆到DEV。然後我們擺脫了PROD中的序列,現在只需使用DEV中的序列生成的ID將記錄從DEV移動到PROD。或者換句話說,我們只是擺脫了他們的問題。

相關問題