#!/bin/bash # GigLez Database Setup Script # This script creates the PostgreSQL database and user for GigLez set -e # Exit on error echo "🚀 GigLez Database Setup" echo "========================" echo "" # Colors for output GREEN='\033[0;32m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' # No Color # Database configuration DB_NAME="giglez" DB_USER="giglez_user" DB_PASSWORD="giglez_secure_password_2026" # Change this in production! echo -e "${BLUE}Step 1: Creating PostgreSQL user${NC}" sudo -u postgres psql -c "CREATE USER ${DB_USER} WITH PASSWORD '${DB_PASSWORD}';" 2>/dev/null || echo " User already exists, skipping..." echo -e "${BLUE}Step 2: Creating database${NC}" sudo -u postgres psql -c "CREATE DATABASE ${DB_NAME} OWNER ${DB_USER};" 2>/dev/null || echo " Database already exists, skipping..." echo -e "${BLUE}Step 3: Granting privileges${NC}" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};" echo -e "${BLUE}Step 4: Enabling PostGIS extension${NC}" sudo -u postgres psql -d ${DB_NAME} -c "CREATE EXTENSION IF NOT EXISTS postgis;" sudo -u postgres psql -d ${DB_NAME} -c "CREATE EXTENSION IF NOT EXISTS postgis_topology;" echo -e "${BLUE}Step 5: Granting schema permissions${NC}" sudo -u postgres psql -d ${DB_NAME} -c "GRANT ALL ON SCHEMA public TO ${DB_USER};" sudo -u postgres psql -d ${DB_NAME} -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ${DB_USER};" sudo -u postgres psql -d ${DB_NAME} -c "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO ${DB_USER};" echo "" echo -e "${GREEN}✅ Database setup complete!${NC}" echo "" echo "Connection details:" echo " Database: ${DB_NAME}" echo " User: ${DB_USER}" echo " Password: ${DB_PASSWORD}" echo " Host: localhost" echo " Port: 5432" echo "" echo "Connection string:" echo " postgresql://${DB_USER}:${DB_PASSWORD}@localhost:5432/${DB_NAME}" echo "" echo "Test connection:" echo " psql -U ${DB_USER} -d ${DB_NAME} -h localhost" echo ""