Javaの移行


85

私はRubyonRailsとJavaの両方を使用しています。Railsプロジェクトに取り組んでいるときは、移行を使用することを本当に楽しんでいます。だから私はJava用のツールのような移行があるのだろうか?そのようなツールがない場合、Javaプロジェクトで使用されるデータベースを制御するためのツールとして移行を使用することをお勧めしますか?

回答:


8

HibernateのSchemaUpdateを使用して、移行と同じ機能を実行しました。アプリを起動するたびにデータベース構造を調べてマッピングと同期するため、移行よりも実際には簡単です。追加のrake:db:migrateステップがなく、アプリが実行中のデータベースと同期しなくなることはありません。に対して。HibernateマッピングファイルはRailsの移行ほど複雑ではないため、アプリでHibernateを使用していなくても、それを利用できます。欠点は、ロールバック、移行、DMLステートメントの実行に関しては柔軟性がないことです。コメントで指摘されているように、テーブルや列も削除されません。Hibernate初期化プロセスの一部として、これらを手動で実行する別のメソッドを実行します。

Railsの移行を使用できなかった理由はわかりませんが、スタック(Ruby、Rake、Rails)をインストールしてもかまわない限り、アプリに触れる必要はありません。


22
100%同期しません。これは、ALTER列、削除列またはテーブル、削除FKSなどない
cherouvim

88

以下のための機能比較の間

  • フライウェイ
  • Liquibase
  • c5-db-移行
  • dbdeploy
  • mybatis
  • MIGRATEdb
  • merge4j
  • dbmaintain
  • AutoPatch

で見てhttp://flywaydb.org

これは、あなたや他の人が仕事に適したツール選択するための良いスタートになるはずです。


2
ねえ、私はフライウェイを知りませんでした。かなり面白そうなので、詳しく見ていきます。Flywayに言及してくれてありがとう!
Pascal Thivent 2010年

@Pascal Thiventコメントありがとうございます!あなたがそれを評価するならば、私はそれについてのあなたの意見/批評/提案をここかFlywayの課題追跡システムのどちらかで聞いてうれしいです:-)それは素晴らしいように見えるので比較マトリックスにDbMaintainを追加することも検討しますライバル...
アクセル・フォンテーヌ

もちろんそうします。そして、比較にDbMaintainを追加してくれてありがとう、そのようなマトリックスがあるのはとてもいいことです。
Pascal Thivent 2010年

3
これを投稿していただきありがとうございます。今日からFlywayを使い始めました。私は以前にliquibaseを使用しましたが、あるプロジェクトでは独自のソリューションを提供しました。Flywayは私がliquibaseに期待していたものです。シンプルでxmlはなく、Javaでより複雑な移行を記述できます。完璧です。アリのサポートを楽しみにしています。
nogridbag 2011

1
ウェブサイトの現在のバージョンは、Flyway、Liquibase、MyBatisのみを比較しているようです。完全な比較はまだ他の場所で利用できますか?
zero3 2016年



6

同じ質問を調べているときに、この投稿に出くわしました。私はまだ最良のツールやアプローチについて結論を出していませんが、これまで他の回答で言及されていない、私が遭遇したツールの1つはdbdeployです。これらのツールの比較を読みたいと思います。

その他の関連リソース:MartinFowlerとPramodSadalageによるEvolutionaryDatabase Designに関するやや古い投稿、および本Refactoring Databases:Evolutionary Database Design by Sadalage and ScotAmbler。


6

Javaのレールのような移行には2つの独立した実装もあります。

1)Mavenのベース移行カーボンファイブ

2)HashrocketからのAntベースのタスク(私の個人的なお気に入り)

これらのパッケージは特にMavenとAnt用に作成されていますが、いくつかの作業を行うことで、ほぼすべてに適応させることができます。


5
2007年カーボンファイブのC5-DBマイグレーション製品は2010年以来更新されていないので、Hashrocketは触れられていない
グリーン


2

ありDbMaintain最初は内部で開発されたUnitilsが、現在は専用のプロジェクトですが。私たちは現在それを使用しており、非常に満足しています(これは良い選択肢がないという意味ではありません)。私はそれらの多くをデータベース+移行ブックマークにリストします(Mavenをサポートするツールに焦点を当てています)。


1
そのようなツールは、より速く安全に開発するのに役立ちます
Arthur Ronald

@Arthurはい、そのようなツールを入手できたのはとても良いことです。ある環境から別の環境へのスキーマ更新のカスケードは、私たちにとって今や喜びです:)
Pascal Thivent 2010年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.