0
0

【備忘録】spring.jpa.hibernate.ddl-autoで大失敗した話

Last updated at Posted at 2024-06-15

現在アサインしているプロジェクトでは、Springbootを使用しているのですが、設定の中身を理解せずにいじったことで大失敗を犯してしまいました。
大失敗とは何かというと、プロジェクトのDB上のテーブルをほぼ削除してしまうという、とんでもなく恐ろしい事でした。(まぁ、言われた通りにいじっただけなので自分が完全に悪かったというわけではないと思いたい…)

spring.jpa.hibernateとは

application.propertiesファイルに書いて、DBの設定を行うことが出来るものです。 詳しくはまた別記事で纏めようと思います。

ここでは一旦、「DBを色々いじれるもの」という理解で良いかと思います。

spring.jpa.hibernate.ddl-auto に設定可能な値

この値では、データベーススキーマ(テーブル)を設定することが出来ます。

・none
➙何もしない
・validate
➙検証をする。 しかしデータベースには変更を加えない。
・update
➙アプリケーション起動時に、Entityに対応するテーブルがなければ作成する。
・create
➙アプリケーション作成時に、Entityに対応するテーブルがなければ作成する。 もしあれば、 データを削除する。
・create-drop
➙アプリケーション作成時に、Entityに対応するテーブルがなければ作成する。 セッション終了時にスキーマを削除する。

私は“create-drop”を設定してしまったことで、セッション終了時にテーブルがほとんど消えてしまいました。
一時的にテーブルを作成する場合以外は基本的に"none"を設定するといいかと思います。

まとめ

application.propertiesのDBに関係してそうな記述は、調べてから触るのが吉。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0