feat: local 전용 db migration bash script 작성

This commit is contained in:
Hanbin Lee
2023-03-22 00:12:57 +09:00
parent 01c39b333e
commit afa9f93dab
3 changed files with 55 additions and 2 deletions

View File

@@ -3,8 +3,10 @@
- flyway version: `9.15.4`
- [flyway doc](https://documentation.red-gate.com/fd/flyway-documentation-138346877.html)
## :pushpin: Installation
<br>
## :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
```
```
<br>
## :pushpin: Migration for Local Env
```shell
$ cd [PROJECT_ROOT_DIR]
$ chmod 755 ./script/migration-local.sh
$ ./script/migration-local.sh
```
project의 root directory로 이동하는 것이 중요

39
script/migration-local.sh Executable file
View File

@@ -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"