48 lines
1.1 KiB
Bash
48 lines
1.1 KiB
Bash
|
|
#!/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|bootstrap}"
|
||
|
|
echo ""
|
||
|
|
echo "Commands:"
|
||
|
|
echo " migrate Run database migrations only"
|
||
|
|
echo " init-data Initialize seed data only"
|
||
|
|
echo " bootstrap Run migrations + init-data"
|
||
|
|
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
|
||
|
|
;;
|
||
|
|
bootstrap)
|
||
|
|
echo "=== Running Bootstrap ==="
|
||
|
|
PYTHONPATH=backend/src uv run python -m core.runtime.cli bootstrap
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
usage
|
||
|
|
;;
|
||
|
|
esac
|