0

バージョンに応じて自動的にハウスキーピングとデータベースの更新を行う方法について、誰かが良いフレームワークやアドバイスを知っているのではないかと思います。

たとえば、バージョン 1.1 を使用していて、ソフトウェアがバージョン 2.0 にアップグレードされたとします。1.1 と 2.0 の間で互換性を保つために必要なことがいくつかあります。

  • 1.2 新しいテーブルを追加
  • 1.3 は古いテーブルを削除し、いくつかのフィールド名を変更します
  • 1.4 テーブル a と b の間にリレーションシップを追加します。

したがって、バージョン 2.0 がバージョン 1.1 データベースで動作するには、アプリケーションの実行を許可する前に、上記の手順を順番に実行する必要があります。

以前は、データベースのフィールドにバージョン番号を格納していました。クラスは基本クラスを継承し、それ自体をUpdate+バージョン番号と呼びます(例: Update1.2. 各クラスは、必要なタスクを実行し、バージョン番号を更新してプロセスを続行します。

これにはある種のフレームワーク、または少なくとも推奨される方法が必要ですか?

4

1 に答える 1

4

MigratorDotNetなどの移行フレームワークを使用します。これは、当社で使用していて非常に満足しています。アプリケーションが進化するにつれて、移行をさらに追加します (移行基本クラスから継承し、上に移行するためと下に移行するための 2 つのメソッドをオーバーライドするクラスの形式で。これらのメソッド内では、単純な API を使用して SQL ステートメントを発行します)。各移行にはシーケンス番号またはタイムスタンプがあり、MigratorDotNet は、適用された移行を追跡するデータベース内のテーブルを維持します。アプリケーションの起動時に必要な移行が適用されるため、データベースは常にアプリケーション コードの要件と一致します。

つまり、あなたは正しい方法でそれを行っていましたが、実際にはそのためのフレームワークがあります。:-)

于 2011-03-04T10:27:39.033 に答える