Files
eryao/infra/scripts/dev-migrate.sh
T

54 lines
1.4 KiB
Bash
Raw Normal View History

#!/bin/bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
ENV_FILE="$ROOT_DIR/.env"
ENV_LOADER="$ROOT_DIR/infra/scripts/lib/env.sh"
usage() {
echo "Usage: $0 {migrate|init-data|sync-notifications|bootstrap}"
echo ""
echo "Commands:"
echo " migrate Run database migrations only"
echo " init-data Initialize seed data only"
echo " sync-notifications Sync static notification configs to DB"
echo " bootstrap Run migrations + init-data + sync-notifications"
echo ""
echo "Note: Requires redis service running (docker compose up -d redis)"
exit 1
}
if [ ! -f "$ENV_FILE" ]; then
echo "Error: env file not found at $ENV_FILE" >&2
exit 1
fi
# shellcheck disable=SC1090
. "$ENV_LOADER"
load_env_file "$ENV_FILE"
cd "$ROOT_DIR"
case "${1:-}" in
migrate)
echo "=== Running Migrations ==="
PYTHONPATH=backend/src uv run python -m core.runtime.cli migrate
;;
init-data)
echo "=== Running Init Data ==="
PYTHONPATH=backend/src uv run python -m core.runtime.cli init-data
;;
sync-notifications)
shift
echo "=== Running Sync Notifications ==="
PYTHONPATH=backend/src uv run python -m core.runtime.cli sync-notifications "$@"
;;
bootstrap)
echo "=== Running Bootstrap ==="
PYTHONPATH=backend/src uv run python -m core.runtime.cli bootstrap
;;
*)
usage
;;
esac