2009-10-22 102 views
15

我正在尋求圍繞NHibernate和相對頻繁變化的模式來細化我的工作流程,以及如何最好地處理這個問題 - 我想同樣的解決方案適用於生產系統,所以我認爲我需要遷移引擎,而不僅僅是模式更新。nhibernate +遷移工作流程

我想知道的是我如何儘可能地改進工作流程,以便儘可能少地完成我的數據庫與我的域模型同步的工作。 tarantino腳本的方法看起來不錯,但似乎沒有辦法從我的nHibernate映射中生成更新腳本,所以我可以手工製作一個腳本或使用redgate sql比較工具。有什麼我想念的東西會讓腳本生成階段的生活變得更輕鬆?

謝謝, 克里斯

回答

1

我沒有使用任何這些migration tools for .net的自己,但若干年前on Rails的在我的業餘時間嘗試Ruby的時候,我看到移民帶來的好處相比,T-SQL我們當時在工作中使用的腳本。

+0

感謝您的建議,但我的問題更多的是圍繞優化工作流程而不是提供哪些工具...... – Chris 2009-10-26 10:32:49

1

在最近的一個項目中,我們發現遷移與VCS分支和NHibernate相結合可能會導致一些頭痛和缺陷。

我們所做的是將NHibernate設置爲用於每個自動構建(用於開發環境)以及一些數據加載來生成架構。

對於生產環境,我們有一個基於當前模式和所需模式的腳本,它生成了一個具有必要字段和修改的遷移。

+1

您是否已經自動生成此開發生成腳本? – 2011-05-02 22:28:31

0

我們使用SQL Compare。它是支付的,但值得投資恕我直言。保持每個生成的腳本組織良好 - 即時間戳 - 並且讓自己成爲生成任何發佈版本的數據庫的好方法。

這是我們一貫的流量

  1. DEV期間,我們有兩個數據庫 「項目名」 和 「ProjectName_TEST」。
  2. 對於我們生成的每個模式更改(NHibernate)一個全新的數據庫並替換「ProjectName_TEST」。
  3. 我們使用SQL Compare來更新「ProjectName」(因此保留其中的所有開發數據)
  4. 在發佈時,我們將「ProjectName_TEST」與生產數據庫進行比較並生成更新腳本。

看看command line options,因爲它們非常方便通過VS構建事件來自動化過程。