#!/bin/bash set -e COMMAND=${1:-info} ENV_FILE=".env" if [[ ! -f "$ENV_FILE" ]]; then echo ".env file not found in the current directory." exit 1 fi # Export variables from .env export $(grep -E '^[A-Za-z_][A-Za-z0-9_]*=' "$ENV_FILE" | xargs) if [[ -z "$MYSQL_HOST" || -z "$MYSQL_PORT" || -z "$MYSQL_DATABASE" ]]; then echo "MYSQL_HOST, MYSQL_PORT, or MYSQL_DATABASE missing from .env" exit 1 fi export LOCALDEV_FLYWAY_URL="jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}" export FLYWAY_URL="$LOCALDEV_FLYWAY_URL" export FLYWAY_USER="$MYSQL_USER" export FLYWAY_PASSWORD="$MYSQL_PASSWORD" echo "Ensuring database '$MYSQL_DATABASE' exists..." mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" \ -e "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" if [[ $? -ne 0 ]]; then echo "Failed to create database or connect to MySQL. Check your credentials or server status." exit 1 fi ./mvnw flyway:"$COMMAND"