2010-07-01 106 views
15

我很好奇,如果有任何解決方案,最好是免費的,可以有一箇中央數據庫以版本方式發佈數據。數據庫的版本控制

例如,

客戶端1決定編輯者輪廓,使得它得到了機器上的本地副本進行更改。當他們對那裏感到滿意時,他們會將結果發佈到中央數據庫。就像你將如何做一個提交。

客戶端2嘗試編輯相同的本地副本,但是當他們去提交時,他們必須解決衝突。

中央數據庫必須存儲數據版本之間的壓縮差異。

在任何時候有人可以查看提交的所有數據版本。

+0

我們在這裏討論的是什麼樣的用戶界面? – 2010-07-01 08:43:48

回答

3

「的數據庫版本控制」是一個有點曖昧的標題,因爲你正在使用一個數據庫作爲存儲庫「數據存儲」實際上要求一個VCS 。

Subversion有這樣一個模型(Berkeley DB or filesystem-based)。
它也有一個Copy-Modify-Merge model它類似於你所描述的鎖定機制。

alt text http://svnbook.red-bean.com/nightly/en/images/ch02dia4.pngalt text http://svnbook.red-bean.com/nightly/en/images/ch02dia5.png

+0

我覺得OP正在尋找一種方法,把數據庫內容轉換爲VCS,而不是使用一個數據庫作爲一個VCS的存儲機制。換句話說,而不是使用VCS來管理文件的更改,在OP正在尋找一個VCS,他可以用它來管理數據庫更改的記錄。 – 2011-03-17 19:53:23

2

從展鵬排序提供了一些此功能的SQL工具,但不是在你描述的方式來實現。例如,sql data compare可以比較2個數據庫中的數據之間的差異,也可以使用sql source control

但是,在本地計算機上獲取數據庫的副本,進行更改並重新提交將更像是手動過程。

+1

如果你考慮數據版本紅門解決方案,單擊「如何到版本控制你的數據」從鏈接: http://www.red-gate.com/products/sql_source_control/evaluation_center/index.htm – 2010-07-03 11:00:06

3

結賬OffScale DataGrove

該產品跟蹤對整個DB架構和數據的更改。您可以在任何時間點標記版本,並使用簡單的命令返回到數據庫的舊狀態。它還允許您創建相同數據庫的虛擬,單獨的副本,以便每個團隊成員可以擁有自己的單獨數據庫。所有虛擬副本都被追蹤到同一個存儲庫中,因此將數據庫還原到其他人的版本非常容易(您只需簽出他們的版本,就像使用源代碼管理一樣)。這意味着您的所有數據庫始終可以同步。

免責聲明 - 我在超出標度工作:-)

0

這正是我的產品(是的,我有偏見:))DBmaestro團隊一樣。

  • 它強制並保持軌道上的結構和內容
  • 它防止上由兩個對象結構或內容的兩個平行的變化的變化(只要它們在同一對象上工作 - 這意味着,相同的數據庫,同架構,...)
  • 它使用的基線感知分析其瞭解這種變化的本質,知道要改也要促進或應該被忽略(因爲它是從另一個環境中進行),或者如果有衝突 還有更多...

我鼓勵大家閱讀關於數據庫強制管理解決方案的綜合性,公正的評論,由他在LinkedIn上發佈的資深數據庫專家Ben Taylor編寫。https://www.linkedin.com/pulse/article/20140907002729-287832-solve-database-change-mangement-with-dbmaestro