2011-04-19 74 views
12

我作爲scm開發人員工作,我目前負責涉及數據庫版本控制的活動。儘管我已經完成了源代碼管理,但我對此很新。因此,我想就如何實現這一點有不同的看法和經驗。數據庫版本號

我的意思是什麼數據庫(ORACLE/SYBASE)版本是捕捉到這恰好數據庫架構/觸發器/等的變化,並將其存儲爲修訂。基本上在我們公司,客戶數據庫有一些變化,我們不知道或者至少無法確定何時和誰做出了特定的變更。我們只是試圖創建一個DB中發生的變化記錄。

注意:我不是一個DB傢伙。

+0

+1問題想看到的答案:d,我們DB-不識字的人需要一些指導... – 2011-04-19 15:03:36

+2

同時,考慮限制一些用戶的權限終止這發生了。 – elekwent 2011-04-19 15:08:39

+0

對於那些需要PHP中簡單的數據庫模式版本控制的人來看看這個腳本:http://blog.kicaj.com/database-schema-versioning-in-php/ – Ralphz 2012-06-30 21:15:44

回答

5

通常的做法是允許更改通過構建過程。基本上..有一個像CVS這樣的版本控制工具,用戶可以檢查必須進入QA和Prod環境的更改。

因此,讓我們說,有一些列添加到表中,開發人員將使用「Alter table ...」命令檢查.ddl腳本,並將「應用」到數據庫下一次你做一個構建。

除非你直接更改用戶限制(在這種情況下..開發者),而使用標準的建立過程,跟蹤對象更改隨着時間的推移幾乎是不可能的。

考慮像誰做的改變,改變的時候,用戶必要的細節,原因(簽到留言,錯誤號碼,新的功能要求等),這你以後需要理解爲什麼做出更改。所有更改通常使用像「APPOWNER」這樣的標準用戶進行編譯,如果沒有版本控制系統,則只能訪問最新更改(last_ddl_change)。

如果您關注的是跟蹤數據的變化,您可以使用觸發器或使用像金門的應用程序將通過重做日誌閱讀,讓你改變捕獲記錄。從你的問題看來,你似乎在尋找一種方法來跟蹤對象的變化。

+0

-1提到CVS hehe .. just開玩笑:) – duedl0r 2011-04-21 07:13:36

+0

最近聽過Linus ..? ;) – 2011-04-21 12:17:20