2011-07-07 3 views
1

私はMigrator Dot Netを使用して自分のデータベーススキーマをバージョン管理し、Fluent NHibernateを使用してモデルをスキーマにマップします。流暢なNHibernateのマッピングと移行が同期していることを確認する方法?

実行中の移行によって生成されたスキーマとNHスキーマのエクスポートによって生成されたスキーマを比較して、テーブル定義、キー、インデックスなどが同期していることを確認する方法はありますか?

私が考えることができるのは、両方のスキーマをエクスポートしてから、いくつかの不明なものを使用してスクリプトを作成し、スクリプト文字列を比較することです。

良い方法がありますか?

編集::明確にするために、テーブル、列、および列の種類だけでなく、インデックスと外部キーも確認したいと思います。

答えて

4

のNHibernateのスキーマバリデータがあります使用することができます。

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

これは完璧に見える、これはインデックスとキーと同様にテーブルを検証しますか? – Brook

+0

私は実際には分かりません。私は 'SchemaExport'によって生成されたすべてのものを検証することも期待します。これはキー、インディビジョン、および制約です。確かめてみるか、コードを読んでください。 –

+0

コードを見ると、IDフィールドをチェックするように見えますが、キーやインデックスをチェックしているとは思いません。私はそれを追加することがどれほど難しいだろうと思っています、多分私はそのルートを行くでしょう。 – Brook

3

FNHとDBスキーマによって生成されたマッピングが同期していることを確認するだけで十分だと思います。そのため
あなたはthis simple test

+0

を、私はこれはまだうまくいくと思うが、それは少し時代遅れです。ステファンとスライは最新です。 – Marijn

+0

そうです。私はそれらの他の2つの選択肢を知らなかった。 –

関連する問題