3

TFS内でデータベースの移行とバージョン管理を実行でき、展開/ビルド中にこれを自動的に展開できるツール(できればオープンソース)を探しています。

バックグラウンド

頻繁に更新されるアプリケーションを開発しました。データベースの変更がある場合もあれば、ない場合もあります。データベースは Oracle 11g で実行されており、テストを実行するための Sqlite データベースも用意されています。NHibernate を Fluent-NHibernate と組み合わせて ORM (マッピング用の Fluent-NHibernate) として使用します。

現在の状況

この時点で、データベースの変更は手動で行われます。データベース作成のための流暢なマッピングを変更し、SQL スクリプトを作成して、必要なものを変更 / 削除 / 作成します。Test / Acceptence / Production に移動するには、別の構成に対してビルドし、コンテンツを特定のサーバーにコピーして、データベース上で特定の SQL スクリプトを実行します。

欠点

NHibernate の schemaupdate は破壊的な更新を許可しないため、NHibernate ソリューションを探している場合は手動で行う必要があります。

好ましい状況

上記は実行可能な解決策ですが、 Expand/Contractを使用して新しいバージョンをデプロイする場合に、必要に応じてアップ/ロールバックできるように、これらの変更をバージョン管理する必要があります。これは、新しいバージョンをデータベースにデプロイするときに自動的に行われることが望ましいです。

質問

  1. スキーマの生成に Expand と Contract を使用する移行ツールはありますか?
  2. Oracle 11g、SqLite、SqlServer で動作しますか?
  3. NHibernate / Fluent-NHibernate を使い続ける可能性
  4. 特定のビルドを自動的に展開するための良い方法 (必須ではありません。これを行うのに十分なツールがありますが、すべてを実行できるものがあるとよいでしょう)

調査済み

  • ラウンドハウスE
    • ロールバックなし。
    • マッピングで動作させることができません。
  • FluentMigrator
    • 独自の Fluent インターフェイスを使用する NHibernate マッピングと組み合わせることはできません。
  • Red-Gate Deployment Suite for Oracle
    • ツールを当社の環境に簡単に統合することはできません。

これが明確であることを願っています。そうでない場合は、お気軽にコメントしてください

4

0 に答える 0