アプリケーションが初めてマシン上で実行されるたびに、Hibernate がすべてのテーブル スキーマを作成するアプリケーションがあります。これはうまく機能します。
ただし、Hibernate にデータベースをバージョン管理下に保つ何らかのメカニズムがあるかどうか疑問に思っていました。つまり、Hibernate は、別のバージョンのアプリケーションを実行し、Hibernate が古いスキーマとは異なるデータベース スキーマを見つけたときに、あるスキーマを別のスキーマに移行する方法を知っているのでしょうか。バージョンは存在しますか? Hibernate が既存のスキーマを読み取ることができ、スキーマをマッピングの説明と比較できることを考えると、これは可能なはずだと思います。ただし、Liquibase / Flyway などで変更スクリプトを作成するときのように、Hibernate に古いデータを移行するように指示する方法がわかりません。
Hibernate とバージョン管理では、監査とフィールド バージョン管理で多くのヒットが表示されるため、正しいことをグーグルで調べていない可能性がありますが、Liquibase / Flyway の種類のバージョン管理に関してもっと考えています。両方を一緒に考えたことはありませんでしたが、Hibernate は更新スクリプトを作成せず、データベースを直接操作するため、両方を一緒に機能させる方法がわかりません。
独自のスクリプトを作成する代わりに、Hibernate にスキーマを作成させるのはこれが初めてです。これは、 Hibernate Enversを利用して、スクリプトの手動作成を非常に面倒なものにするために行います。多分私は明らかな何かを見逃しています。この件についてご意見をお寄せいただきありがとうございます。
更新: 今日、Flyway の開発者と話をすることができました。彼は、良い解決策を知らないと言っていました。もしかして何もない?