我想用數據庫(在Azure上)爲網站實現CI和CD。如何使用數據庫SSDT c#VSTS EF6連續傳輸Azure
工具:
- SSDT(項目數據庫)
- C#
- VSTS(Visual Studio團隊服務)
- EF6(實體框架6)
- Azure的SQL數據庫
目標是一個完整的連續活動即使是在數據庫(最難的部分)。 對於網站來說,使用VSTS的CD非常容易。但關於數據庫,我無法找到一個明確的方法來進行。 所以一些讀數我打算:
- 使用SSDT來管理數據庫。 VSTS構建,使用數據庫projet的dacpac自身通過模式比較生成更新數據庫。我只會寫數據運動的sql腳本。
- 使用EF6和「反轉POCO碼第一發電機」 link
100%持續交付,我甚至無法在數據庫架構修改停止服務。
所以我讀到數據庫更新必須與以前的部署(運行網站的DAL)兼容。因此,所有數據庫模式修改將分兩步進行,分兩次進行。只有當第一步交付時才能進行第二次交付。
所以規則應該是
- 重命名錶是不允許
- 重命名字段不允許
- 在SSDT添加列 1步驟
- 添加列使用默認值
- 將實體類別添加屬性 2步驟 在數據庫上
- 刪除缺省值
- 刪除列 1步驟
- 上實體刪除列
- 通過SSDT 2步驟添加默認值
- 通過SSDT
刪除列
我很漂亮,我正在重新發明輪子,但我找不到完整的教程。 我在路上好嗎?微軟世界中有沒有解決方案?我準備學習。謝謝
好問題,我試圖找出自己的這一個。該解決方案似乎涉及在部署期間鏡像數據庫並執行故障切換到鏡像,然後故障恢復到升級的數據庫並讓新的模式更改複製。 https://docs.microsoft.com/en-us/sql/relational-databases/replication/transactional/peer-to-peer-transactional-replication – s3raph86
@ s3raph86選中此:https://dzone.com/articles/zero -downtime-deployment-with-a-database-1 – Julian50