From afa9f93dab9ab2588e6034397e22f0798240b7a4 Mon Sep 17 00:00:00 2001 From: Hanbin Lee Date: Wed, 22 Mar 2023 00:12:57 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20local=20=EC=A0=84=EC=9A=A9=20db=20migra?= =?UTF-8?q?tion=20bash=20script=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/README.md | 18 +++++++++++-- db/{flyway.conf => flyway-local.conf} | 0 script/migration-local.sh | 39 +++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) rename db/{flyway.conf => flyway-local.conf} (100%) create mode 100755 script/migration-local.sh diff --git a/db/README.md b/db/README.md index 425f954..8e0891d 100644 --- a/db/README.md +++ b/db/README.md @@ -3,8 +3,10 @@ - flyway version: `9.15.4` - [flyway doc](https://documentation.red-gate.com/fd/flyway-documentation-138346877.html) -## :pushpin: Installation +
+## :pushpin: Installation(Local) +LOCAL 환경에 해당 ```shell $ brew install flyway ``` @@ -39,4 +41,16 @@ $ flyway migrate -configFiles=db/flyway.conf DB에 적용된 migration과 local에 적용된 migration 정보 일치 여부 체크 ```bash $ flyway validate -configFiles=db/flyway.conf -``` \ No newline at end of file +``` + +
+ +## :pushpin: Migration for Local Env + +```shell +$ cd [PROJECT_ROOT_DIR] + +$ chmod 755 ./script/migration-local.sh +$ ./script/migration-local.sh +``` +project의 root directory로 이동하는 것이 중요 \ No newline at end of file diff --git a/db/flyway.conf b/db/flyway-local.conf similarity index 100% rename from db/flyway.conf rename to db/flyway-local.conf diff --git a/script/migration-local.sh b/script/migration-local.sh new file mode 100755 index 0000000..da668d0 --- /dev/null +++ b/script/migration-local.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +echo -e "########### [LOCAL] DB Migration ###########" +printf "\n" + +PROJECT_NAME="dongne-cafe-api" +PROJECT_ROOT_DIR=$(pwd) +FLYWAY_CONFIG_FILE="flyway-local.conf" + +if [[ $PROJECT_ROOT_DIR != *"/$PROJECT_NAME" ]]; +then + echo "Error >> move to project's root directory" + exit 1 +fi + +echo "Project's Root Directory: $PROJECT_ROOT_DIR" +printf "\n" + +echo "###################################" +echo "Using Flyway Version" + +if ! flyway --version 2> /dev/null; +then + echo "Error >> Flyway Not Supported" + exit 1 +fi +echo "###################################" +printf "\n" + +echo "1. Flyway Info" +flyway info -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" +printf "\n" + +echo "2. Flyway Migrate" +flyway migrate -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" +printf "\n" + +echo "3. Flyway Validate" +flyway validate -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE"