我使用Migrator Dot Net來版本化我的數據庫模式,並使用流利NHibernate來將模型映射到模式。如何確保流暢的NHibernate映射和遷移同步?
是否有一種很好的(讀取:自動)方法來比較運行遷移生成的模式和NH模式導出生成的模式,以確保表定義,鍵,索引等同步?
我能想到的唯一的事情就是導出兩個模式,然後使用一些未知的(如果你知道一個好的答案!)庫將它們編寫出來,然後比較腳本字符串。
有沒有更好的方法?
編輯:要說明,我想驗證不僅表,列和列類型,而且還索引和外鍵。
我使用Migrator Dot Net來版本化我的數據庫模式,並使用流利NHibernate來將模型映射到模式。如何確保流暢的NHibernate映射和遷移同步?
是否有一種很好的(讀取:自動)方法來比較運行遷移生成的模式和NH模式導出生成的模式,以確保表定義,鍵,索引等同步?
我能想到的唯一的事情就是導出兩個模式,然後使用一些未知的(如果你知道一個好的答案!)庫將它們編寫出來,然後比較腳本字符串。
有沒有更好的方法?
編輯:要說明,我想驗證不僅表,列和列類型,而且還索引和外鍵。
有NHibernate的模式驗證:
SchemaValidator validator = new SchemaValidator(configuration);
validator.Validate();
我認爲只需檢查由FNH和您的數據庫模式生成的映射是否同步即可。
的,你可以用this simple test
我認爲這仍然有效,但它是稍微過時。 Stefan和Sly的更新。 – Marijn
你是對的。我並不知道其他2個選項。 –
看起來很完美,這是否驗證索引和鍵以及表? – Brook
我其實不知道。我期望它能驗證'SchemaExport'生成的所有東西,這些東西也是關鍵,實例和約束。可以肯定的是,嘗試一下或閱讀代碼。 –
看着代碼,它看起來像確實檢查標識字段,但我不認爲它檢查鍵或索引,這是一個無賴。我想知道要多加努力,也許我會走這條路。 – Brook