[解決済み] Spring.jpa.hibernate.ddl-autoプロパティは、Springで具体的にどのように動作しますか?
質問
Spring bootアプリのプロジェクトで作業をしていて、時々、別のサーバー(SQL Server)にあるデータベースへの接続タイムアウトエラーが発生することに気づきました。
この現象は、次のようなスクリプトを実行したときに発生します。
FlyWay
が、何度か試しているうちにうまくいくようになりました。
そこで気がついたのですが、私は
spring.jpa.hibernate.ddl-auto
をプロパティファイルに追加しました。調べてみたところ、このファイルに
spring.jpa.hibernate.ddl-auto= create-drop
を開発中です。
そして、それを変更する。
spring.jpa.hibernate.ddl-auto= none
を実行します。
しかし、実際にどのように動作するのか、また、Hibernateがどのように
create-drop
または
none
の値を指定します。技術的にどのように動作するのか、また、開発および本番サーバーでこのプロパティを使用する際の推奨事項を説明してもらえますか?
ありがとうございます。
どのように解決するのですか?
ちなみに
spring.jpa.hibernate.ddl-auto
プロパティはSpring Data JPA固有のもので、Hibernateが知っているプロパティの下に最終的に渡される値を指定する方法です。
hibernate.hbm2ddl.auto
.
値
create
,
create-drop
,
validate
および
update
基本的に、スキーマツール管理は起動時にデータベーススキーマをどのように操作するかに影響します。
例えば
update
そして、Hibernate はアノテーションされたクラスや HBM XML マッピングを読み込んで作成したオブジェクトモデルを比較し、スキーマをオンザフライで調整しようとします。
は
update
オペレーションは、新しい列や制約などを追加しようとしますが、以前は存在したかもしれないが、以前の実行からオブジェクトモデルの一部としてもはや存在しない列や制約を削除することは決してありません。
通常、テストケースのシナリオでは、多くの場合
create-drop
スキーマを作成し、テストケースでモックデータを追加してテストを実行し、 テストケースのクリーンアップの際にスキーマオブジェクトを削除して空のデータベースを残すようにします。
開発では、しばしば、開発者が
update
を使えば、再起動時に自動的にスキーマを修正して、新しい追加項目を追加することができます。 しかし、これは以前の実行から存在する可能性のある、もはや必要のないカラムや制約を削除するものではないことを再度理解しておいてください。
実稼働環境では、しばしば
none
または単にこのプロパティを指定しない。 これは、特にデータベースが複数のサービスやアプリケーションで共有されている場合、DBAがデータベースの変更に関する移行スクリプトを確認することが一般的だからです。
関連
-
[解決済み】クライアントが送信したリクエストは構文的に正しくありません -Spring MVC + JDBC Template
-
[解決済み] 例外を取得しました。springSecurityFilterChain'という名前のビーンが定義されていません。
-
[解決済み] mvc:annotation-driven はバインドされていません。
-
FunctionService' タイプのビーンが見つかりませんでした。
-
Spring エラー: java.lang.IllegalStateException: ApplicationContextのロードに失敗しました
-
[解決済み] java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み] Springのオートワイヤリングの仕組みは?
-
[解決済み】ビーン初期化完了後にメソッドを呼び出すには?
-
[解決済み] Spring Bootのデータベース関連の自動設定をすべて無効にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] org.springframework.web.servlet.PageNotFound noHandlerFound URIを持つHTTPリクエストのマッピングが見つからない。
-
[解決済み】DispatcherServletの名前[duplicate]でURI...を持つHTTPリクエストのマッピングが見つからない。]
-
[解決済み] Spring Batchのステップスコープの仕組み
-
[解決済み] ApplicationContextException: ServletWebServerApplicationContext が見つからないため、ServletWebServerFactory ビーンを起動できません。
-
互換性のない型.Found:'int',required:'java.lang.String'.
-
SpringBootのテスト
-
[解決済み】Spring MVCとSpring Bootの違い【終了しました
-
[解決済み】SpringのGA、RC、M2リリースの違いは何ですか?
-
[解決済み] Spring Resttemplateの例外処理
-
[解決済み] コンテンツタイプ 'application/x-www-form-urlencoded;charset=UTF-8' は @RequestBody MultiValueMap ではサポートされていません。