29 lines
1.0 KiB
Bash
Executable File
29 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# This script runs when the PostgreSQL container is first created
|
|
# It ensures the database is properly initialized
|
|
#
|
|
# Keep this database-name agnostic: the staging stack (docker-compose.test.yml)
|
|
# runs the same script with POSTGRES_DB=qrmaster_test. A hardcoded name aborts
|
|
# the init, and the container never becomes healthy.
|
|
# Must stay LF-only and executable - Postgres sources non-executable init
|
|
# scripts, and CRLF breaks them on the first line.
|
|
|
|
echo "🚀 Initializing QR Master database..."
|
|
|
|
# The database itself is already created by POSTGRES_DB
|
|
psql -v ON_ERROR_STOP=1 -v dbname="$POSTGRES_DB" --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
|
-- Enable required extensions
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
CREATE EXTENSION IF NOT EXISTS "pg_trgm";
|
|
|
|
-- Set timezone
|
|
ALTER DATABASE :"dbname" SET timezone TO 'UTC';
|
|
EOSQL
|
|
|
|
echo "✅ Database initialization complete!"
|
|
echo "📊 Database: $POSTGRES_DB"
|
|
echo "👤 User: $POSTGRES_USER"
|
|
echo "🌐 Ready to accept connections on port 5432"
|