題:
SQL Server數據庫版本控制
missingsemicolon
2017-06-28 20:37:28 UTC
view on stackexchange narkive permalink

我正在尋找與Git鏈接的開源SQL Server數據庫版本控制插件/工具。

我嘗試了gitSQL和red-gate sql源代碼控制(不是開放源代碼)。使用gitSQL時,我看到一個問題,當我嘗試導出對象時,似乎也導出了依賴項。

我想獲得一些有關SQL Server版本控制良好工具的建議。

我正在使用SQL Server Management Studio 2014。

一 回答:
#1
+2
Basil Bourque
2017-06-29 13:32:55 UTC
view on stackexchange narkive permalink

enter image description here

純文本文件,在Git / Mercurial中

使用您的源代碼版本控件,例如 Git a如您所述,或 Mercurial

以SQL腳本跟踪創建,定義和不斷變化的變化。這些是純文本文件,可以與您的應用程序項目一起保存,也可以保存在自己的單獨項目中。

由於這些只是文本文件,因此您不需要任何特殊的加載項或工具與Git鏈接。

您可能需要使用數據庫遷移工具來幫助管理和自動化按需要以一定順序運行這些腳本的繁瑣工作。您可以在重新創建數據庫或更新已使用的數據庫時執行遷移。

Flyway

Flyway 項目是數據庫遷移工具。您發展數據庫結構所採取的每一步都記錄為SQL腳本,由Flyway管理。當Flyway遇到尚未更新的數據庫實例時,它將運行適用的SQL腳本。

您可以將這些SQL腳本與源代碼一起保留,包括作為版本控制系統的一部分。或者,您可以將這些腳本保留在項目外部,然後在運行時將Flyway指向它們。

對於復雜的情況,在SQL腳本之外,還可以應用Java類來對數據庫進行更改。 SQL不足。

Flyway是基於Java構建的,但對於非Java開發人員也非常有用,它具有圍繞調用Java類的命令行實用程序包裝。因此,您可以從控制台,shell腳本或構建/集成服務器運行Flyway。

Flyway是開源的,免費的,並且迅速普及。

支持Microsoft SQL Server以及Postgres,H2,DB2等數十種其他。

對於測試非常有幫助,因為您可以創建一個新的空數據庫,然後讓Flyway將該數據庫提升到開發歷史記錄中的任意位置。

Liquibase

Liquibase 的目的與Flyway非常相似,但是您的遷移是由XML腳本而不是SQL驅動的腳本。

在考慮Flyway時,您應該考慮並比較Liquibase。它們都是成功的強大工具。

謝謝你的評論。我在尋找版本控制工具而不是遷移工具。 Flyway和Liquibase是遷移工具。請問您能為SQL Server提供任何開源版本控制工具的建議嗎?
@bhuvana您可以將Flyway管理的SQL腳本放入任何常規的版本控制系統中,例如Mercurial或Git。現在,您具有數據庫結構演變的完整歷史記錄。 “ SQL Server版本控制工具”還意味著什麼?編輯您的問題以確切說明您的需求。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...