#!/bin/bash # Idempotent database setup script for stock-data-backend # Creates PostgreSQL user and database if they don't exist, then runs migrations. # Safe to run multiple times. # # Usage: # chmod +x deploy/setup_db.sh # ./deploy/setup_db.sh # # Customize these via environment variables: # DB_NAME=stock_data_backend DB_USER=stock_backend DB_PASS=changeme ./deploy/setup_db.sh set -e DB_NAME="${DB_NAME:-stock_data_backend}" DB_USER="${DB_USER:-stock_backend}" DB_PASS="${DB_PASS:-changeme}" echo "Setting up database: ${DB_NAME} with user: ${DB_USER}" # Create role and database if they don't exist sudo -u postgres psql <