我想弄清楚如何在我們有兩個DB的環境中實現版本控制:一個測試和一個生產。數據庫對象版本控制(不是模式)
在測試。有任意數量的任務正在測試。這些對被操作對象的數量和複雜性沒有限制,這意味着我們可以有一個3天的任務來改變2個包體和一個觸發器,我們可以有一個3個月的任務來改變100個不同的對象,包括С源文件和二進制對象。
我主要關心的是基於文本的DB對象。我們需要的版本測試和生產代碼,但任何任務可以去從測試到生產有沒有任何定義的順序。
這意味着現在我們必須手動跟蹤對文件中的變化,每一個文件,該文件中的代碼行從去測試到生產內選擇。我們使用一個非常基本的解決方案,在標題中寫入一系列帶有基於文件的版本號的註釋,並在代碼標籤中添加該序列來限定更改。
我竭力實現SVN,因爲我想創造測試爲生產的一個分支,其分支在測試限制每個任務,但我覺得這可能會導致許多測試在合併期間任務被移植到生產。
此說,我的問題是:
- 有自動解決此問題的方法?
- 是否有任何數據庫特定的版本控制解決方案?
- 如果代碼庫如此不同,我怎樣才能「鏈接」兩種環境?
我的問題不在於部署,生產數據庫正在運行,我們沒有部署任何其他實例。我們只需要消除將測試合併到生產任務中的手工工作。我們一直在開發測試,每週都會有新的東西進入生產環境。 – jcd
我不確定我是否理解了這個問題 - 我們也做了很多修改 - 我們只是用改變日誌的方式進行了修改。每個開發人員都必須將所有變更發送給負責集成和維護變更腳本的DBA。如果你正在尋找一個自動工具來執行這個任務,那麼我不知道(如果有一個我們可能有更多的失業DBA的)。 – haki