![](/img/trans.png)
[英]How can I find all columns that are filled with 100% nulls in my SQL Server database schema?
[英]How can I update my SQL Server database schema?
通常在項目開發過程中我會經常部署,以確保我不會在生產中遇到任何問題。
此外,在整個開發過程中,我發現自己正在改變數據庫的模式。
如何在生產中輕松更新數據庫?
我一直在刪除舊數據庫並重新連接新數據庫。 是否有更快的方式來更新部署數據庫?
謝謝
有什么免費工具嗎?
維護應用於dev數據庫的所有更改腳本的列表,並在部署時將它們應用於Production數據庫。
或者,使用可以比較兩個模式的第三方工具,並提供可以隨后運行的更改腳本。
我嘗試使用像RedGate SQL Compare這樣的工具,它會顯示兩個版本之間的“差異”,並實際編寫不同的組件。 您還可以習慣編寫所有數據庫修訂的腳本,以便對已經進行的更改進行審計跟蹤,並在准備部署時以編程方式應用它們。
最好的辦法是將更改作為一組diff腳本實現。 因此,不是刪除表並重新創建它,而是將腳本作為ALTER TABLE。
還有一些工具可以幫助你做到這一點。 如果保留原始數據庫和新數據庫的副本,則可以針對這兩個數據庫運行一個工具,該工具將生成將從一個版本帶到另一個版本的SQL。
我個人希望每當我更改特定版本的架構時,都會更新完整的創建腳本以及維護升級腳本。 我使用過Red Gate SQL Compare,它是一個非常好的工具,但更喜歡保持腳本。
始終編寫腳本以更改架構。 將腳本放在促銷文件夾中,以便在提升更改時執行腳本以更改每個環境。
試試DBSourceTools。
http://dbsourcetools.codeplex.com
它的開源,並將腳本整個數據庫
- 表,視圖,過程和數據到磁盤,然后允許您通過部署目標重新創建該數據庫。
它專門用於幫助開發人員在源代碼控制下獲取數據庫。
Generate Scripts向導完全符合我的需要。
Migrator Dot Net是一個用於版本化數據庫的強大工具。 在使用遷移后,很難回到手動跟蹤腳本和進行數據庫比較。
Visual Studio數據庫版非常擅長這一點 。 它使源代碼腳本中的整個架構與其余代碼一起保持在源代碼管理中。 當您進行更改時,它可以分析您的架構的依賴關系。 它可以運行最佳實踐分析。 它可以生成.dbschema文件,部署工具可以使用該文件將數據庫升級到當前架構。
實際上,您可以通過continuos集成自動執行此操作,並直接構建測試環境,暫存環境甚至生產環境。 這意味着當您簽入測試分支時,構建機器將構建產品,運行構建驗證測試並將其部署在開發服務器上。 當您從測試分支反向集成到主分支時,構建機器構建產品,運行BVT並在您的分段測試/接受服務器上部署。 當您集成到發布分支時,構建計算機將構建,測試並最終部署在生產中。 現在確實如此,沒有多少組織准備好走這么遠,讓連續構建過程在現場生產服務器上自動部署,我認為這是一種激進的想法。 但我說你應該比任何手動測試和部署更信任你的自動化BVT和自動化流程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.