#!/bin/bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs) cd "$PROJECT_DIR" if [[ $# -lt 1 ]]; then echo "Usage: bin/importdb " >&2 exit 1 fi SQL_FILE="$1" if [[ ! -f "$SQL_FILE" ]]; then echo "Error: File not found: $SQL_FILE" >&2 exit 1 fi echo "Dropping and recreating database '${MARIADB_DATABASE}'..." docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" \ --execute "DROP DATABASE IF EXISTS \`${MARIADB_DATABASE}\`; CREATE DATABASE \`${MARIADB_DATABASE}\`;" echo "Importing ${SQL_FILE} into '${MARIADB_DATABASE}'..." if [[ "$SQL_FILE" == *.sql.gz ]]; then gunzip -c "$SQL_FILE" | docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" else docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" < "$SQL_FILE" fi echo "Done: Database '${MARIADB_DATABASE}' imported successfully."