#!/bin/bash # Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0 # Importer les fonctions communes source "$(dirname "$0")/../common/common_utils.sh" # Vérifier si le script est exécuté en root check_root set -e echo "👉 Nom de la base de données à créer : " read DB_NAME echo "👉 Nom de l'utilisateur PostgreSQL propriétaire : " read DB_USER # Lecture du mot de passe en mode sécurisé read -s -p "🔑 Mot de passe PostgreSQL de l'utilisateur 'postgres' : " DB_PASS echo "" # Exporter le mot de passe temporairement export PGPASSWORD="$DB_PASS" echo "🔎 Vérification de l'existence de l'utilisateur PostgreSQL '$DB_USER'..." USER_EXISTS=$(psql -U postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='${DB_USER}'") if [[ "$USER_EXISTS" != "1" ]]; then echo "❌ L'utilisateur '$DB_USER' n'existe pas dans PostgreSQL." unset PGPASSWORD exit 2 else echo "✅ L'utilisateur '$DB_USER' existe." fi echo "🔎 Vérification de l'existence de la base de données '$DB_NAME'..." DB_EXISTS=$(psql -U postgres -tAc "SELECT 1 FROM pg_database WHERE datname='${DB_NAME}'") if [[ "$DB_EXISTS" == "1" ]]; then echo "⚠️ La base de données '$DB_NAME' existe déjà." else echo "🛠 Création de la base de données '$DB_NAME' avec le propriétaire '$DB_USER'..." createdb -U postgres -O "$DB_USER" "$DB_NAME" echo "✅ Base de données '$DB_NAME' créée avec succès." fi # Nettoyage de la variable d'environnement unset PGPASSWORD echo "🎉 Opération terminée."