2011-08-30 9 views
12

私は現在、移行フレームワーク/ツールの可能なオプションを調査中です。私は上記のフレームワークが基づいているルビーの移行のアイデアが気に入っています。migrator.net対fluentmigrator対migsharp

私はあなたの経験、意見、多分それらの間の比較を求めています。あなたはプロダクションでそれらを使用していますか?


回答ありがとうございます。この質問の目標は、開発者コミュニティでどのツールが最も使用されているかを知ることでしたが、ここではマイグレーションはホットな話題ではないようです。

とにかく、私はコードベースがきれいに見えるので、MigSharpと一緒に行くことにしました。これは処理が簡単で、MS SQL CEをサポートしていました。 2人目のランナーはFluentMigratorでしたが、私はコンパクトエディションのための実例を作り出すことができませんでした。

乾杯

+0

古典的なゴリラ対サメhttp://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ – regisbsb

答えて

9

私は生産にFluentMigratorを使用し、FMへの長年の貢献しています。私はあなたの質問が一般にあると思う。具体的に。また、FMには、FM情報が必要な場合にはかなりアクティブなGoogleグループがあります。

FMは私が思い出したようにmigrator.netから派生したものです。それは、流暢な構文を使用し、複数のデータベースをサポートしています。私たちはレールの移行からインスピレーションを得ましたが、間違いなくポートではありません。チェックアウトする価値がある。

私が学んだことの1つは、アプリケーションコードと同じアセンブリに移行することではありません。それらをマイグレーション・アセンブリーに分け、それを使用してデータベースをマイグレーションします。

また、本番環境でのマイグレーションの問題を回避するには、常に複数の環境で作業する必要があります。私はいつも少なくとも開発と生産環境を持っており、ほとんどの場合、テスト環境もあります。

3

私はmig#を使用します。

これはうまくいきますが、移行のためにいくつかのガイドラインが必要になります。

私たちは、移行の最後に日時スタンプではなくシーケンス番号を使用します。これは、日付のタイムスタンプがいつ設定されたか(ソースコードの変更セットを開始したとき、コミットする直前、その間にあるとき)、異なる開発者が異なるアプローチを使用する可能性があるからです。

Migration_0000034.csなどの名前は十分なスペースを提供します。

+0

Mig#または一般的に移行が複雑になると言っていますか? – Dejan

+0

ところで、Mig#のマニュアルはここにあります:https://github.com/dradovic/MigSharp/wiki – Dejan

0

この時点で、私はmigrator.netに固執します。私はFluentMigratorの約束を気に入っていますが、migrator.netよりも優れた開発をしていないようです(githubサイトで苦しんでいる問題やプルリクエストを参照)。

ExecuteScalar()を実行する簡単な方法もありません。私はそれを追加するつもりですが、自分のフォークを作成したくないので、プルリクエストが実際にマスターに着陸する理由はありません。 (Execute.WithConnectionはアクションであり、起動する必要があるときではなく、必要に応じて起動します)

私にとっては、migrator.netに戻っています。

関連する問題