PI06 i PI06-1. Docker definitions for MSSQL and Postgres. Data seeder/generator for countries and people. Entity Framework example with variants for Postgres and MSSQL
This commit is contained in:
52
docker-definitions/mssql-eventsdb/scripts/configure-db.sh
Normal file
52
docker-definitions/mssql-eventsdb/scripts/configure-db.sh
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
sqlcmd_bin="/opt/mssql-tools18/bin/sqlcmd"
|
||||
server_ready=false
|
||||
db_exists=""
|
||||
|
||||
run_sqlcmd_query() {
|
||||
"$sqlcmd_bin" -S localhost -U sa -P "${MSSQL_SA_PASSWORD}" -C "$@"
|
||||
}
|
||||
|
||||
for _ in $(seq 1 60); do
|
||||
if run_sqlcmd_query -Q "SELECT 1" >/dev/null 2>&1; then
|
||||
server_ready=true
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ "$server_ready" != "true" ]; then
|
||||
echo "SQL Server did not become ready in time." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for _ in $(seq 1 30); do
|
||||
if db_exists="$(run_sqlcmd_query -h -1 -W -Q "SET NOCOUNT ON; SELECT CASE WHEN DB_ID(N'${MSSQL_DB}') IS NULL THEN 0 ELSE 1 END;" 2>/dev/null)"; then
|
||||
db_exists="$(echo "$db_exists" | tr -d '[:space:]')"
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ -z "$db_exists" ]; then
|
||||
echo "Could not determine whether database ${MSSQL_DB} exists." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$db_exists" = "1" ]; then
|
||||
echo "Database ${MSSQL_DB} already exists. Skipping initialization."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for sql_file in /docker-entrypoint-initdb.d/*.sql; do
|
||||
echo "Running ${sql_file}"
|
||||
run_sqlcmd_query \
|
||||
-b \
|
||||
-f 65001 \
|
||||
-i "${sql_file}" \
|
||||
-v MSSQL_DB="${MSSQL_DB}" APP_DB_USER="${APP_DB_USER}" APP_DB_PASSWORD="${APP_DB_PASSWORD}" MSSQL_COLLATION="${MSSQL_COLLATION}"
|
||||
done
|
||||
8
docker-definitions/mssql-eventsdb/scripts/entrypoint.sh
Normal file
8
docker-definitions/mssql-eventsdb/scripts/entrypoint.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
/opt/mssql/bin/sqlservr &
|
||||
|
||||
/usr/local/bin/configure-db.sh
|
||||
|
||||
wait
|
||||
Reference in New Issue
Block a user