im_wower
·
2026-03-22
apply-control-api-d1-migrations.sh
1#!/usr/bin/env bash
2set -euo pipefail
3
4SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5REPO_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
6APP_DIR="${REPO_ROOT}/apps/control-api-worker"
7CONFIG_PATH="${APP_DIR}/wrangler.jsonc"
8
9if [[ ! -f "${CONFIG_PATH}" ]]; then
10 echo "wrangler config not found: ${CONFIG_PATH}" >&2
11 exit 1
12fi
13
14DEFAULT_DATABASE_NAME="$(sed -n 's/.*"database_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "${CONFIG_PATH}" | head -n 1)"
15DATABASE_NAME="${1:-${DEFAULT_DATABASE_NAME}}"
16
17if [[ -z "${DATABASE_NAME}" ]]; then
18 echo "Unable to determine database_name from ${CONFIG_PATH}." >&2
19 exit 1
20fi
21
22shift $(( $# > 0 ? 1 : 0 ))
23
24cd "${APP_DIR}"
25npx --yes wrangler@4 d1 migrations apply "${DATABASE_NAME}" --config wrangler.jsonc --remote "$@"