2010-12-06 15 views
1

当社の製品は複数のデータベースをサポートしています。現時点では、FireBirdとMSSqlをサポートしており、今後のオラクルのサポートがあります。複数のDBMSをサポート。更新中にクライアントDBを更新するための最良の戦略?

私たちが製品のアップデートをリリースするとき、クライアントのデータベーススキーマも更新する必要がある可能性があります。

伝統的に、データベースを正しいバージョンにするために実行される「テーブルの追加」などの機能を実行するDBバージョンに適したスクリプトが用意されています。 2つのSQLスクリプトを維持する必要があるため、これは面倒になりつつあります(Oracleをミックスに追加するとさらに多くの作業が必要になります)。

私たちはdbレイヤーでEntity Frameworkを使用します。 EFには既にデータベースのスキーマが含まれています。私は疑問に思っています - EFを使用するための滑らかな方法があり、クライアントDBの更新を処理するスキーマに関する知識はありますか?

EDIT -

これは、EF 4.0

答えて

-1

であるあなたが使用しているEFのバージョンを言及していません。 V4では、「コードファースト」モデルを使用できます。 ScottGu's postをチェックしてください。私はあなたが必要なすべてのDBでサポートされているかどうかは100%確信していません。 [編集]既存のスキーマを更新するのではなく、既存のスキーマを更新するだけです。

多分様々なDBをサポートし、スキーマの自動更新を行うnHibernateに切り替える価値があります。

+2

Code Firstの自動スキーマ生成の問題は、バージョン管理がサポートされていないことです。データベースを削除して再作成するだけです。クライアントはそれを望んでいないと思います。流暢なNhibernateスキーマの生成でも同じことが起こりますが、EFチームは次のCTPのための移行ソリューションを開発しようとしています。 – ryudice

+0

http://stackoverflow.com/questions/366176/how-to-update-database-table-schemas-with-nhibernate-schema-generationをご覧ください。私はEF4も同じことをするだろうと思ったが、何も見つけることができなかった –

+0

EF4(正式に)で見つからなかった:http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4 -code-first-custom-database-schema-mapping.aspx#7572584 –

関連する問題