2012-01-12 98 views
1

我一直在研究開發和生產數據庫時要遵循的正確過程。我發現的最好的文章是這樣的:Strategies for Database Development and Deployment,但我不能接受這個想法,我必須手動維護一個Word文檔,以便對數據庫進行的每一項更改。這對我來說似乎是荒謬的...將最新更改部署到生產數據庫 - 不丟失數據

我使用SQL Server Management Studio來管理我的SQL數據庫都在dev和prod中。有沒有辦法將最新的更改部署到生產中,而不銷燬表和數據。有人可以請我指出一個關於如何在SSMS中完成的好的程序性文章。

感謝

回答

3

對數據庫設計進行更改而不創建放入源代碼管理的更改腳本是不負責任的。

但是,如果您已經處於這種狀況,我建議您購買red_gate的SQLCompare。它將查看兩個數據庫並編寫差異。儘管如此,您仍然無法運行這個功能 - 有時您對dev數據庫進行了更改,這些數據庫尚未被推到prod上,而且SQLCompare無法知道這一點。創建腳本要好得多(在表格當前存在時使用alter table,以免破壞現有數據),並將它們保留在源代碼管理中,同時您將同時推送其他代碼。

+0

感謝所有人的輸入......我想我只需要更好地跟蹤和存儲我的更改腳本並使用這些更改來推動更改。 – Nugs 2012-01-12 17:31:35

+0

您可能需要考慮將SQL Compare與SQL Source Control結合使用,因爲這樣不僅可以版本化數據庫,還可以選擇指定的任何自定義遷移腳本(例如ALTER)。 SQL Compare在構建其部署腳本時重新使用這些知識。 – 2012-01-21 19:35:37

1

做到在prodiction的唯一正確途徑 - 有或沒有Management Studio中 - 準備,檢查,測試和手動運行的腳本。

WITH FRESH BACKUP!

1

通常的策略是保持一組有序的變化腳本,例如,以日期或數據庫版本爲前綴,通過從生產的新備份開始,可以在開發數據庫中輕鬆進行測試。更改腳本通常可以在進行更改時從SQL Server Management Studio生成,或者可以在發生更復雜的更改時手動製作。

另一個建議是版本控制數據庫定義(表,程序等)。這可以通過使用SQL Server Management Studio在每次更新後爲所有對象生成創建腳本來輕鬆實現。通過這種方式,您可以輕鬆比較隨時間或不同環境所做的更改。

相關問題