diff --git a/script/migration-local.sh b/script/migration-local.sh index d39d46c..3bd16f7 100755 --- a/script/migration-local.sh +++ b/script/migration-local.sh @@ -1,39 +1,60 @@ #!/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 +check_project_root_path() { + 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 -e "Project's Root Directory: $PROJECT_ROOT_DIR\n" +} -echo "###################################" -echo "Using Flyway Version" +flyway_version_check() { + echo "###################################" + echo "Using Flyway Version" -if ! flyway --version 2> /dev/null; -then - echo "Error >> Flyway Not Supported" - exit 1 -fi -echo "###################################" -printf "\n" + if ! flyway --version 2> /dev/null; + then + echo "Error >> Flyway Not Supported" + exit 1 + fi + echo -e "###################################\n" +} -echo "1. Flyway Info" -flyway info -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" -printf "\n" +error_check() { + if [ $? -ne 0 ]; + then + echo "Error >> $1 & Exit" + exit 1 + fi -echo "2. Flyway Migrate" -flyway migrate -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" -outputType=json -printf "\n" + printf "\n" +} -echo "3. Flyway Validate" -flyway validate -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" -outputType=json +flyway_migration_process() { + STEP_1="1. Flyway Info" + STEP_2="2. Flyway Migrate" + STEP_3="3. Flyway Validate" + + echo $STEP_1 + flyway info -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" + error_check "$STEP_1" + + echo $STEP_2 + flyway migrate -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" -outputType=json + error_check "$STEP_2" + + echo $STEP_3 + flyway validate -configFiles="$PROJECT_ROOT_DIR/db/$FLYWAY_CONFIG_FILE" -outputType=json + error_check "$STEP_3" +} + +echo "########### [LOCAL] DB Migration ###########" +check_project_root_path +flyway_version_check +flyway_migration_process \ No newline at end of file