Springで初期データをdata.sqlで投入する方法

Springで初期データをdata.sqlで投入する方法

data.sqlというファイルをsrc/main/resources配下に置くことでSpring起動時にデータをテーブルにインサートすることができます。

但し、application.yamlの設定が必要です。

initialization-mode: alwaysが必要です。

ddl-auto: createとすることで、アプリを終了してもデータがインサートされたままとなります。

ddl-auto: create-dropとすると、アプリ終了時にテーブルがdropされてしまいます。

ddl-auto: updateとすると、テーブルがcreateされたりdropされない為、既にデータが存在する場合は、初期データ投入のinsert文で重複キーでエラーとなってしまいます。(Duplicate entry ‘1’ for key ‘PRIMARY’)

Duplicate keyのエラーを回避したい場合はinsert文をON CONFLICT ~ DO NOTHING;を使用したりしておけば大丈夫です。

また、flywayやliquibaseなどのDBマイグレーションツールを使う手もありです。

insertした初期データが日本語が文字化けする場合

これは、data.sqlをutf-8で保存することで解決できます。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA