desktop上に構築したpostgreSQLに、テーブル作成、データ投入を行う手順をまとめました。したい・・・ということを想定した場合、flywayをどのように使えば簡単な仕組みが作れるか??についてまとめています。flywayとはこの辺り一度読んでもらうのが早いと思います。>>Flyway使い方メモが、一応簡単に解説すると、データベースの状態(断面)を管理して、どんな環境にもどんな断面にも簡単に再現できる。いうのがflywayの特徴だとざっくり捉えてもらえればいいかなと思います。初期データ登録用のinsert文をバージョンを振りながら登録しておく必要があります。flyway実行時にここのDBへ向けてこのバージョンを再現!!という指示を与えることで指定されたバージョンのクエリだけ実行して上のようなことが実現できるようなイメージです。実際に動くサンプルをgithubに公開していますので、そちら参考にしてください。>>サンプルソースコードローカル環境にDBを構築してflywayでテストデータをセットアップするまでの流れローカル環境のdocker上にpostgreSQLを構築、flywayを使って事前に準備しておいたスキーマ・テーブルcreate文とテストデータのinsert文を実行させることで、ローカル環境にDB構築〜テストデータセットアップしました。今回はローカル環境にサクッとセットアップできて、サクッと更新できて、サクッと壊せるようにしたかったのでその辺りは利用していません。ローカル環境にDB構築〜flywayでテストデータをセットアップの具体的な手順をサンプルコードで解説まずはflywayに実行させるクエリ管理用のプロジェクトをpullしてください。別リポジトリで管理しなくてもいいですが、ごちゃごちゃするのでプロダクションコード(例で挙げているリポジトリでいうbackendプロジェクト)とは別プロジェクトで管理しましょう。ソースコード解説flywayの利用とdb接続に必要なライブラリの依存関係をにpomに設定しています。>>該当ソースコードまた、flywayがどのDBに対してクエリを実行するのかというプロパティの設定をしています。>>該当ソースコード実際に流すクエリは>>src/main/resources/db/migrationに配置しており、flywayはこの配下のsqlファイルを全部実行するようにします。flyway実行まずflyway実行の前にdocker上にpostgreSQLを構築します。親プロジェクトフォルダ直下(docker-compose.ymlがあるところ)で以下実行するとdocker上にpostgreSQLが構築できます。-dflywayプロジェクト直下で以下実行するとflywayがdocker上に構築したpostgreSQLに向けてsrc/main/resources/db/migration配下の全sqlを実行します。flyway:migrateIntelliJにプロジェクトインポートして実行する場合はこんな感じでmavenウィンドウからの実行が可能です。実際にpostgreSQLにクライアントツールを使って繋いでテーブルができているかの確認手順は省略しますが、こんな感じでテーブル作成とデータ登録されているはずです。ちなみにですが、テストデータが変更したくなったら、クエリを直して同じように以下コマンドを実行すれば再作成可能にするために、V0__drop.sqlでスキーマごと削除するクエリを一番先頭で流すようにしています。flyway:migrateまとめ今回はflywayを利用してローカル環境でdocker上に構築したpostgreSQLに対して、テストデータ登録済みの状態までサクッと準備できる方法について解説しました。他にも色々使いどころはあります。本記事が、現状の開発プロセスにおいての何かしらの課題を解決するヒントになれば幸いです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。