#!/usr/bin/env bash # init.sh - Initialize the SQL Server database with the schema and sample data. # This script is intended to be run inside the SQL Server container (or from the host # with sqlcmd reachable). It executes the init.sql script located in the same # directory. set -euo pipefail # Default connection settings – can be overridden via environment variables : "${DB_SERVER:=localhost}" : "${DB_USER:=sa}" : "${DB_PASSWORD:=YourStrong!Passw0rd}" : "${DB_NAME:=CustomerDB}" : "${SQLCMD_PATH:=sqlcmd}" # Path to the sqlcmd executable # Path to the init script (relative to this script's location) SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" INIT_SQL="${SCRIPT_DIR}/init.sql" if [[ ! -f "${INIT_SQL}" ]]; then echo "❌ init.sql not found at ${INIT_SQL}" exit 1 fi echo "🚀 Running database initialization..." "${SQLCMD_PATH}" -S "${DB_SERVER}" -U "${DB_USER}" -P "${DB_PASSWORD}" -d "master" -Q "IF DB_ID(N'${DB_NAME}') IS NULL CREATE DATABASE ${DB_NAME};" # Run the init script against the newly created database "${SQLCMD_PATH}" -S "${DB_SERVER}" -U "${DB_USER}" -P "${DB_PASSWORD}" -d "${DB_NAME}" -i "${INIT_SQL}" echo "✅ Database ${DB_NAME} initialized successfully."