2010-03-09 106 views
4

我有我的開發項目使用SVN經驗少,和我有關係數據庫一樣的經驗。我知道表格和SQL語句等基本概念,但我遠不是專家。數據庫中是否有通用的版本控制選項?

我想知道的是,如果有任何通用的版本控制系統類型像SVN,但這項工作與數據庫,而不是文件。我希望獲得像SVN一樣的功能,就像創建分支,創建標籤和合並分支一樣。版本號不是與文件存儲庫版本相關聯,而是與數據庫版本相關聯。

難道他們的任何通用的解決方案可用,可以增加這種功能獨立於實際的數據庫架構嗎?我會對使用MySQL或MS SQL Server的解決方案感興趣。

我也應該澄清,我想版本控制數據未架構。我希望模式保持不變。所以真的好像我想要一種方法來創建日誌,記錄每個數據版本之間發送數據庫的所有INSERT,UPDATE和DELETE請求。這樣,通過重新發送已保存到所需版本的所有SQL語句,可以重新創建任何版本。

回答

1

您可以編寫腳本所有的DDL,存儲過程和這種常規的文本文件。

然後,你可以簡單地使用SVN數據庫版本。

0

有兩件事我能想到的:

  • http://www.liquibase.org/ - 提供的一般管理數據庫變化的方法。創建一個可以提交,進入源代碼控制文件,並且它可以幫助管理在不同的開發數據庫的變化等
  • http://www.viget.com/extend/backup-your-database-in-git/ - 這說明了備份數據庫源代碼控制的策略,但相同的策略可以只在架構中使用。在這種方案中,數據庫將位於主代碼的獨立區域。 (這也可以與其他源控制系統一起使用。)
0

我在我的版本控制系統中保留並維護創建腳本。

1

我從來沒有發現工程,以及顛覆,但這裏的幾件事情我已經做了有幫助的解決方案:

  1. 請將創建模式腳本和填充任何初始數據。然後爲每個更改創建一個更新腳本。這是一個相當手動的過程,但它的工作原理。有額外的事情,幫助像數據庫中的表存儲當前的版本號,並確保該腳本idempotent

  2. 商店的全面發展分貝的顛覆。這通常不會制定出太多了。我,如果有大量的數據,或者經常改變。但在一些項目中可以工作。

相關問題