17 lines
700 B
Bash
17 lines
700 B
Bash
#!/usr/bin/env bash
|
|
# Применить SQL к уже существующей БД (если том postgres не пересоздавали).
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT"
|
|
ENV_FILE="${ROOT}/.env"
|
|
[[ -f "$ENV_FILE" ]] || { echo "Нет .env — сначала ./install.sh"; exit 1; }
|
|
read_env() { grep -m1 "^${1}=" "$ENV_FILE" | sed "s/^${1}=//"; }
|
|
U="$(read_env POSTGRES_USER)"
|
|
DB="$(read_env POSTGRES_DB)"
|
|
export PGPASSWORD="$(read_env POSTGRES_PASSWORD)"
|
|
for f in "$ROOT"/docker/initdb/0*.sql; do
|
|
echo "==> $(basename "$f")"
|
|
docker compose exec -T postgres psql -v ON_ERROR_STOP=1 -U "$U" -d "$DB" -f - <"$f"
|
|
done
|
|
echo "Готово."
|