2011-07-07 41 views
1

我使用Migrator Dot Net來版本化我的數據庫模式,並使用流利NHibernate來將模型映射到模式。如何確保流暢的NHibernate映射和遷移同步?

是否有一種很好的(讀取:自動)方法來比較運行遷移生成的模式和NH模式導出生成的模式,以確保表定義,鍵,索引等同步?

我能想到的唯一的事情就是導出兩個模式,然後使用一些未知的(如果你知道一個好的答案!)庫將它們編寫出來,然後比較腳本字符串。

有沒有更好的方法?

編輯:要說明,我想驗證不僅表,列和列類型,而且還索引和外鍵。

回答

4

有NHibernate的模式驗證:

SchemaValidator validator = new SchemaValidator(configuration); 
validator.Validate(); 
+0

看起來很完美,這是否驗證索引和鍵以及表? – Brook

+0

我其實不知道。我期望它能驗證'SchemaExport'生成的所有東西,這些東西也是關鍵,實例和約束。可以肯定的是,嘗試一下或閱讀代碼。 –

+0

看着代碼,它看起來像確實檢查標識字段,但我不認爲它檢查鍵或索引,這是一個無賴。我想知道要多加努力,也許我會走這條路。 – Brook

3

我認爲只需檢查由FNH和您的數據庫模式生成的映射是否同步即可。
的,你可以用this simple test

+0

我認爲這仍然有效,但它是稍微過時。 Stefan和Sly的更新。 – Marijn

+0

你是對的。我並不知道其他2個選項。 –