したがって、初心者のNHibernateユーザ。私の脳をその周りに包み込むことを試みている。NHibernateはdbスキーマが生成されているかどうかを確認できますか?
私は、Webアプリケーションへのアドオンのデプロイメントと後での注入(独自の永続性クラスが必要な場合があります)を処理する方法を検討しています。
デプロイメントにSchemaExport
を使用するとかなりうまくいくと思っていましたが、NHibernateにスキーマのエクスポートが既に行われているという共通のコードベースの方法を教えてもらえないかと思いました。ない。基本的に、私はこの擬似コードのようsmethingをしたい:2つの関数は、それぞれ内部SchemaExport
またはSchemaUpdate
、使用する
if(!_cfg.HasSchemaForType(typeof(MyType))
ExportSchema(typeof(MyType));
else
UpdateSchema(typeof(MyType));
。
編集:皆さん、私はこれまでの回答に感謝しますが、ポイントを少し欠いています。私がセットアップしようとしているのは、アプリケーションがdbの変更を必要とするアドオンの追加と削除を許可する方法です。私は自分のコードなどのバージョン管理について話しているわけではありません(少なくとも、その主要な機能ではありません)。ですから、アプリケーションをデプロイする時期は少なく、プラグインを追加したり削除したりするときには問題はありません。 theisプラグイン(したがって擬似コードタイプのチェック)は以前にデプロイされていますか?更新されている場合は、更新プログラムを実行します。そうでない場合は、エクスポートを実行します。理にかなっている?
アプリのデプロイメントの問題を解決しようとしていません。私は明確にするためにいくつかのメモを追加しました。お返事をありがとうございます! – Paul
私は彼がデプロイ時には意味しないと思う...これは実行時または初期化時でなければならない...プラグインはそれ自身の依存関係の責任を負わなければならない。 – Webjedi
ありがとうございます。私はあなたのものを「答えた」とマークしました。私は別の懸念を抱いていると思います。あなたの3番目の箇条書きで示唆するように、どのプラグインが配備されているかを追跡するのがおそらく最善のルートです。 – Paul