質問
Ruby on Rails と Java の両方を使用しています。Rails プロジェクトに取り組んでいるときに、マイグレーションを使用するのが本当に楽しいです。そこで、Java 用の移行のようなツールはあるのだろうかと疑問に思っています。そのようなツールがない場合、Java プロジェクトで使用されるデータベースを制御するツールとして移行を使用することは良い考えですか?
解決
Hibernate の SchemaUpdate を使用して、移行と同じ機能を実行しました。実際、移行よりも簡単です。アプリを起動するたびにデータベース構造が検査され、マッピングと同期されるため、追加の rake:db:maigrate ステップがなく、アプリが実行中のデータベースと同期しなくなることがありません。に対して。Hibernate マッピング ファイルは Rails の移行ほど複雑ではないため、アプリで Hibernate を使用していない場合でも、それを利用できます。欠点は、ロールバック、移行、DML ステートメントの実行に関して柔軟性が低いことです。コメントで指摘されているように、テーブルや列も削除されません。Hibernate の初期化プロセスの一部として、これらを手動で行う別のメソッドを実行します。
ただし、Rails の移行を使用できない理由はわかりません。スタック (Ruby、Rake、Rails) をインストールすることを気にしない限り、アプリに触れる必要はありません。
他のヒント
のために 機能の比較 間
- フライウェイ
- リキベース
- c5-db-移行
- データベースデプロイ
- マイバチ
- 移行db
- 移行4j
- データベースの維持
- 自動パッチ
これは、あなたにとっても、他の人にとっても、良いスタートとなるはずです 作業に適したツールを選択する
リキベース は、チェックする価値のあるこの分野のもう 1 つのプロジェクトです。
同じ質問を調べているときにこの投稿を見つけました。最適なツールやアプローチについてはまだ結論が出ていませんが、これまで他の回答で言及されていないツールの 1 つは次のとおりです。 データベースデプロイ. 。これらのツールの比較を読んでみたいと思います。
その他の関連リソース:Martin Fowler と Pramod Sadalage のやや古い投稿 進化したデータベース設計, 、そして本 データベースのリファクタリング:進化したデータベース設計 サダレージとスコット・アンブラー著。
Migrate4j 候補のようですが、このプロジェクトは運用環境で使用できるほど成熟していないようです。
もあります DbMaintain 当初は内部で開発されました ユニット が、現在は専用のプロジェクトになっています。私たちは現在それを使用しており、非常に満足しています(これは、良い代替品がないという意味ではありません)。もっと詳しくリストします データベース+移行 ブックマーク (Maven をサポートするツールに重点を置いています)。