41 lines
1,019 B
Bash
41 lines
1,019 B
Bash
#!/bin/bash
|
|
set -e
|
|
# Default to staging
|
|
TARGET="stg"
|
|
for arg in "$@"; do
|
|
if [[ "$arg" == "-target" ]]; then
|
|
NEXT_IS_TARGET=1
|
|
continue
|
|
fi
|
|
if [[ $NEXT_IS_TARGET == 1 ]]; then
|
|
TARGET="$arg"
|
|
NEXT_IS_TARGET=0
|
|
fi
|
|
done
|
|
|
|
if [[ "$TARGET" == "prod" ]]; then
|
|
DB_CONTAINER="cmc-prod-db"
|
|
DB_USER="cmc"
|
|
DB_PASS="xVRQI&cA?7AU=hqJ!%au"
|
|
DB_NAME="cmc"
|
|
SQL_DIR="/home/cmc/cmc-sales-prod/go/sql/schema"
|
|
else
|
|
DB_CONTAINER="cmc-db"
|
|
DB_USER="cmc"
|
|
DB_PASS="xVRQI&cA?7AU=hqJ!%au"
|
|
DB_NAME="cmc"
|
|
SQL_DIR="/home/cmc/cmc-sales-staging/go/sql/schema"
|
|
fi
|
|
|
|
for sqlfile in "$SQL_DIR"/*.sql; do
|
|
# Skip files starting with ignore_
|
|
if [[ $(basename "$sqlfile") == ignore_* ]]; then
|
|
echo "Skipping ignored migration: $sqlfile"
|
|
continue
|
|
fi
|
|
echo "Running migration: $sqlfile on $TARGET ($DB_CONTAINER)"
|
|
docker cp "$sqlfile" "$DB_CONTAINER":/tmp/migration.sql
|
|
docker exec "$DB_CONTAINER" sh -c "mariadb -u $DB_USER -p'$DB_PASS' $DB_NAME < /tmp/migration.sql"
|
|
done
|
|
echo "All migrations applied."
|