更新、エクスポート、および指定できる値についてさらに詳しく知りたいのですが、hibernate.hbm2ddl.auto
更新をいつ使用し、いつ使用しないかを知る必要があります。代替手段は何ですか?
DB 上で発生する可能性のある変更は次のとおりです。
- 新しいテーブル
- 古いテーブル内の新しい列
- 列を削除しました
- 列のデータ型が変更されました
- 列のタイプの属性が変更されました
- テーブルが削除されました
- 列の値が変更されました
それぞれの場合、最善の解決策は何でしょうか?
ベストアンサー1
からコミュニティドキュメント:
hibernate.hbm2ddl.auto は、SessionFactory の作成時にスキーマ DDL を自動的に検証またはデータベースにエクスポートします。create-drop を使用すると、SessionFactory が明示的に閉じられたときにデータベース スキーマが削除されます。
例: 検証 | 更新 | 作成 | 作成削除
考えられる選択肢は以下のとおりです。
- 検証: スキーマを検証しますが、データベースには変更を加えません。
- create-only : データベースの作成が生成されます。
- drop : データベースの削除が生成されます。
- update : スキーマを更新します。
- create : スキーマを作成し、以前のデータを破棄します。
- create-drop : SessionFactory が明示的に閉じられたとき (通常はアプリケーションが停止されたとき) にスキーマを削除します。
- none : スキーマに対して何も行わず、データベースに変更を加えません。
これらのオプションは開発者ツールとして意図されており、実稼働レベルのデータベースを支援するものではないようです。次の質問を確認することをお勧めします。Hibernate: 本番環境で hbm2ddl.auto=update を実行しますか?