mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
39 lines
1.0 KiB
Bash
Executable File
39 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Initialise one or both SQLite databases from schema.sql.
|
|
# Safe to run on existing databases — schema uses IF NOT EXISTS / INSERT OR IGNORE.
|
|
# Usage:
|
|
# scripts/migrate.sh # both test.db and posterg.db
|
|
# scripts/migrate.sh test # storage/test.db only
|
|
# scripts/migrate.sh prod # storage/posterg.db only
|
|
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
APP_DIR="$REPO_ROOT/app"
|
|
SCHEMA="$APP_DIR/storage/schema.sql"
|
|
TEST_DB="$APP_DIR/storage/test.db"
|
|
PROD_DB="$APP_DIR/storage/posterg.db"
|
|
|
|
init_db() {
|
|
local db="$1"
|
|
local label="$2"
|
|
echo " [$label] applying schema…"
|
|
sqlite3 "$db" < "$SCHEMA"
|
|
echo " [$label] done"
|
|
}
|
|
|
|
TARGET="${1:-both}"
|
|
|
|
case "$TARGET" in
|
|
test) init_db "$TEST_DB" "test.db" ;;
|
|
prod) init_db "$PROD_DB" "posterg.db" ;;
|
|
both)
|
|
init_db "$TEST_DB" "test.db"
|
|
init_db "$PROD_DB" "posterg.db"
|
|
;;
|
|
*)
|
|
echo "Usage: $0 [test|prod|both]" >&2
|
|
exit 1
|
|
;;
|
|
esac
|