最近、データベースの構造のバージョン変更のトピックがここで取り上げられました。 データベース移行用の既製のソリューション(.NETプロジェクト用)の中で、 ECM7.Migratorプロジェクトが言及されており、その著者の1人です。
昨日、ついにバージョン2.0をリリースしました。 新しいバージョンは、 Googleコードのプロジェクトページとnugetパッケージギャラリーで入手できます 。
WTF
ECM7.Migratorは、2年前に登場し、現在は独立した生活を送っているMigrator.NETプロジェクトのフォークです。
主なアイデアは、データベースの変更が特別なフレームワークを使用してコードで記述されることです。 すべての変更は特別なクラスにあります-移行。 各移行には番号があり、順方向(変更の適用)または逆方向(変更のロールバック)に実行できます。 したがって、データベースの任意のバージョンから他のものを取得できます。
migratorには、移行を実行するためのツールも含まれています。コンソールアプリケーションとNAnt / MSBuildのタスクです。
移住者の詳細については、 こちらをご覧ください 。
バージョン2.0
バージョン2.0に6か月以上かかりました。 この間、多くの作業が行われました。 主な変更点は次のとおりです。
- 完全に書き直されたコア。
- 1つのデータベースに複数の独立したシステムコンポーネントの並列バージョンを保持する機能。
- アプリケーション構成ファイルを使用して移行プログラムを構成する機能。
- log4netに基づく新しいロギングシステム。
- 名前の予約語をエスケープします。
- MS SqlServer CE 4サポート; SQLServer CEバージョン<4のサポートなし;
- DBMSに依存しないSQLクエリを作成するためのITransformationProviderインターフェイスの新しいFormatSql関数。
- ITransformationProviderインターフェイスからSelectおよびSelectScalarメソッドを削除しました-ExecuteQueryおよびExecuteScalarメソッドを使用します。
- 変換プロバイダーで接続を開くことはオンデマンドです。
- 複数のアセンブリから移行を実行する機能が削除されました。
- Migrator.NETから残り、完全に実装された機能を含まない不可解なクラスをいくつか削除しました。
- AfterUp、AfterDown、InitializeOnceメソッドは移行クラスから削除されました。
- アセンブリ内の移行番号の正確性の追加チェック。
PS。
1年半前に、移行者の最初のバージョンのリリースに関するトピックを書いたとき、それはマイニングされました(その理由はまだわかりませんでした)。 今でも同じかもしれませんが、問題ではありません。
主な仕事のプロジェクトで移行ツールを使用しましたが、新しいバージョンは以前のバージョンよりもはるかに優れていることに気付きました。 私の提出物から移住者を試した私の友人のほとんどは、すでに他のプロジェクトでそれを再利用しており、これが彼らが好きな開発中にデータベースを操作する唯一の方法であると主張しています。
私たちはすでに欲しいものを手に入れました。 トピックが再びマイナスになった場合、何も変わりません。 このトピックのおかげで、誰かがデータベースを操作する新しい方法を発見した場合、私たちは非常に幸せになります。 また、移民に関するあなたの質問に喜んでお答えします。
ご清聴ありがとうございました!