我們有一個要求,我們希望將紅色門控源作爲自動界面的一部分。自動化紅色門控源數據庫鏈接並提交給SVN
我們希望以編程方式鏈接所需的數據庫並對數據庫進行更改提交。
這可能嗎?如果是的話,我們應該使用哪一種API?
我們有一個要求,我們希望將紅色門控源作爲自動界面的一部分。自動化紅色門控源數據庫鏈接並提交給SVN
我們希望以編程方式鏈接所需的數據庫並對數據庫進行更改提交。
這可能嗎?如果是的話,我們應該使用哪一種API?
這是一個艱難的。根據您的自動化方式,您可以使用其他程序的組合。例如,如果您有某種CI系統,則可以使用SQL Compare自動將源控件中的文件與實時數據庫進行比較,並告訴它同步。您需要源控制系統的命令行界面來檢查更改。
SQL源代碼管理作爲軟件的一部分,被設計爲僅以交互方式工作。
如果你想在代碼(c#,VB)中做到這一點,那麼你可以利用源代碼管理系統的API來檢查文件是否有。例如,SVN有「SharpSVN」,還有一個用於TFS的API。
也許這應該是一個評論,但我需要格式化&空間不存在。
像這樣的「自動提交」通常是有風險的,因爲它們有破壞原子性和信息丟失的風險。考慮以下情況:
我的建議是,你得到了需求改變。出現意外(壞)後果的方式太多了。
你是否將此作爲自動構建過程的一部分?如果是這樣,那麼知道您使用的是哪個構建工具和哪個源代碼控制工具會很有幫助。
這應該提供一些有用的資源:
http://www.red-gate.com/products/sql-development/sql-automation-pack/
有跡象表明,可以爲您的SQL Server數據庫執行有用的構建/測試任務楠和MSBuild的腳本。如果您想要進行更多自定義操作,可以使用版本控制系統命令行和SQL Compare命令行的組合。
我知道這個問題很老,但我正在做你正在描述的內容。
我有一個運行每隔X分鐘,並把數據庫的當前狀態到版本控制工作(對我們來說反覆無常,但你可以做到精確地使用Git或任何同樣的事情)。
cd c:\data\SourceCodeDirectory
hg pull
hg update
if not exist "c:\data\SourceCodeDirectory\databaseName" mkdir "c:\data\SourceCodeDirectory\databaseName"
cd "c:\Program Files (x86)\Red Gate\SQL Compare 11"
sqlcompare /s1:DBServer /db1:databaseName /scr2:"c:\data\SourceCodeDirectory\databaseName" /synchronize
cd c:\data\SourceCodeDirectory\databaseName
hg add
hg commit -m "Database Changes" -u DatabaseSchemaUser
hg push
只要此作業運行,對數據庫所做的任何更改都將在版本控制中進行。
謝謝。我們會研究這一點,如果我仍然有疑問,我會提出。 – Bandita