TFS内でデータベースの移行とバージョン管理を実行でき、展開/ビルド中にこれを自動的に展開できるツール(できればオープンソース)を探しています。
バックグラウンド
頻繁に更新されるアプリケーションを開発しました。データベースの変更がある場合もあれば、ない場合もあります。データベースは Oracle 11g で実行されており、テストを実行するための Sqlite データベースも用意されています。NHibernate を Fluent-NHibernate と組み合わせて ORM (マッピング用の Fluent-NHibernate) として使用します。
現在の状況
この時点で、データベースの変更は手動で行われます。データベース作成のための流暢なマッピングを変更し、SQL スクリプトを作成して、必要なものを変更 / 削除 / 作成します。Test / Acceptence / Production に移動するには、別の構成に対してビルドし、コンテンツを特定のサーバーにコピーして、データベース上で特定の SQL スクリプトを実行します。
欠点
NHibernate の schemaupdate は破壊的な更新を許可しないため、NHibernate ソリューションを探している場合は手動で行う必要があります。
好ましい状況
上記は実行可能な解決策ですが、 Expand/Contractを使用して新しいバージョンをデプロイする場合に、必要に応じてアップ/ロールバックできるように、これらの変更をバージョン管理する必要があります。これは、新しいバージョンをデータベースにデプロイするときに自動的に行われることが望ましいです。
質問
- スキーマの生成に Expand と Contract を使用する移行ツールはありますか?
- Oracle 11g、SqLite、SqlServer で動作しますか?
- NHibernate / Fluent-NHibernate を使い続ける可能性
- 特定のビルドを自動的に展開するための良い方法 (必須ではありません。これを行うのに十分なツールがありますが、すべてを実行できるものがあるとよいでしょう)
調査済み
- ラウンドハウスE
- ロールバックなし。
- マッピングで動作させることができません。
- FluentMigrator
- 独自の Fluent インターフェイスを使用する NHibernate マッピングと組み合わせることはできません。
- Red-Gate Deployment Suite for Oracle
- ツールを当社の環境に簡単に統合することはできません。
これが明確であることを願っています。そうでない場合は、お気軽にコメントしてください