当社の製品は複数のデータベースをサポートしています。現時点では、FireBirdとMSSqlをサポートしており、今後のオラクルのサポートがあります。複数のDBMSをサポート。更新中にクライアントDBを更新するための最良の戦略?
私たちが製品のアップデートをリリースするとき、クライアントのデータベーススキーマも更新する必要がある可能性があります。
伝統的に、データベースを正しいバージョンにするために実行される「テーブルの追加」などの機能を実行するDBバージョンに適したスクリプトが用意されています。 2つのSQLスクリプトを維持する必要があるため、これは面倒になりつつあります(Oracleをミックスに追加するとさらに多くの作業が必要になります)。
私たちはdbレイヤーでEntity Frameworkを使用します。 EFには既にデータベースのスキーマが含まれています。私は疑問に思っています - EFを使用するための滑らかな方法があり、クライアントDBの更新を処理するスキーマに関する知識はありますか?
EDIT -
これは、EF 4.0
Code Firstの自動スキーマ生成の問題は、バージョン管理がサポートされていないことです。データベースを削除して再作成するだけです。クライアントはそれを望んでいないと思います。流暢なNhibernateスキーマの生成でも同じことが起こりますが、EFチームは次のCTPのための移行ソリューションを開発しようとしています。 – ryudice
http://stackoverflow.com/questions/366176/how-to-update-database-table-schemas-with-nhibernate-schema-generationをご覧ください。私はEF4も同じことをするだろうと思ったが、何も見つけることができなかった –
EF4(正式に)で見つからなかった:http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4 -code-first-custom-database-schema-mapping.aspx#7572584 –