#!/bin/bash set -e export POSTGRES_USER="qa_postgres" export POSTGRES_PASSWORD="xM9A4!exJbQNhqJ" export POSTGRES_DB="qa_simfony_billing" export MASTER_PASSWORD="pP5UUJM0mj5b7rZMU5C6" # Ensure the data directory exists mkdir -p /var/lib/postgresql/data/pgdata # Ensure proper ownership chown -R postgres:postgres /var/lib/postgresql/data chmod 750 /var/lib/postgresql/data/pgdata # Wait for the master to be ready until pg_isready --host=master --username=$POSTGRES_USER --dbname=$POSTGRES_DB; do echo "waiting for master to be ready" sleep 2 done # Stop the PostgreSQL server if it is running su postgres -c 'pg_ctl -D /var/lib/postgresql/data/pgdata -m fast -w stop || true' # Clean the data directory su postgres -c 'rm -rf /var/lib/postgresql/data/pgdata/*' # Perform base backup su postgres -c 'pg_basebackup -h master -D /var/lib/postgresql/data/pgdata -U $POSTGRES_USER -v -P --wal-method=stream' # Copy pg_hba.conf to pgdata su postgres -c 'cp /var/lib/postgresql/data/pg_hba.conf /var/lib/postgresql/data/pgdata/pg_hba.conf' su postgres -c 'cp /var/lib/postgresql/data/postgresql.conf /var/lib/postgresql/data/pgdata/postgresql.conf' su postgres -c 'cp /var/lib/postgresql/data/server.crt /var/lib/postgresql/data/pgdata/server.crt' su postgres -c 'cp /var/lib/postgresql/data/server.key /var/lib/postgresql/data/pgdata/server.key' # Create the standby.signal file su postgres -c 'touch /var/lib/postgresql/data/pgdata/standby.signal' # Write primary_conninfo to postgresql.auto.conf echo "primary_conninfo = 'host=master port=5432 user=$POSTGRES_USER password=${MASTER_PASSWORD}'" > /var/lib/postgresql/data/pgdata/postgresql.auto.conf # Ensure proper ownership again chown -R postgres:postgres /var/lib/postgresql/data # Start PostgreSQL server su postgres -c 'pg_ctl -D /var/lib/postgresql/data/pgdata -l /var/lib/postgresql/data/pgdata/logfile -o "-c listen_addresses='*'" -w start'