Files
database-creation/db/init.sh
Thomas Nilles 2d1f55eea1 Switch backend to wait for SQL Server and use direct INSERTs
Replace stored procedure calls with inline INSERT statements and
SCOPE_IDENTITY()
Add netcat for readiness check in new entrypoint.sh
Introduce dedicated SQL Server and init-db services in docker-compose
2026-02-22 09:36:38 -05:00

33 lines
1.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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."