Hibernate hbm2ddl.autoの設定値とその役割について
アップデート、エクスポート、hibernate.hbm2ddl.auto
<br>.に与えられる値について、もっと知りたいのです。
updateを使うときと使わないときを知りたいのですが?また、代替手段は何ですか?
これらは、DB上で起こりうる変更です。
- 新しいテーブル
- 古いテーブルの新しいカラム
- カラムの削除
- カラムのデータ型の変更
- カラムの属性が変更されました。
- テーブルが削除されました
- カラムの値が変更された
それぞれのケースで、どのような解決策が最適でしょうか?
1037
3
コミュニティ・ドキュメント]1より。
例:バリデート|アップデート|クリエイト|クリエイトドロップ
つまり、可能なオプションのリストは
これらのオプションは、開発者向けのツールであり、本番レベルのデータベースを容易にするものではないと思われますので、次の質問を参照してください。
構成プロパティは、
hibernate.hbm2ddl.auto
という名前です。開発環境では、
hibernate.hbm2ddl.auto=creat-drop
を設定して、デプロイするたびにクリーンなデータベースをドロップして作成し、データベースが既知の状態になるようにしています。理論的には、
hibernate.hbm2ddl.auto=update
を設定して、モデルへの変更でデータベースを更新することができますが、本番のデータベースでは信用できません。以前のバージョンのドキュメントでは、これは少なくとも実験的なものであるとされていましたが、現在の状況はわかりません。ですから、私たちの本番データベースでは、
hibernate.hbm2ddl.auto
を設定しないでください。デフォルトでは、データベースに変更を加えません。代わりに、あるバージョンから次のバージョンへの変更を適用する SQL DDL 更新スクリプトを手動で作成しています。私は、dbの更新にはliquibaseを使うと思います。 hibernate'のスキーマ更新機能は、開発者が新機能を開発している間だけ使えます。本番環境では、データベースのアップグレードはより慎重に行う必要があります。