cmc-sales/deploy/scripts/run_all_migrations.sh

41 lines
1 KiB
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-app/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-app/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."