diff --git a/scripts/server-postgres/.list_files.txt b/scripts/server-postgres/.list_files.txt index 74a589c..cdbcc24 100644 --- a/scripts/server-postgres/.list_files.txt +++ b/scripts/server-postgres/.list_files.txt @@ -1 +1,2 @@ +create_pg_db.sh setup-postgres17.sh diff --git a/scripts/server-postgres/create_pg_db.sh b/scripts/server-postgres/create_pg_db.sh new file mode 100644 index 0000000..341273e --- /dev/null +++ b/scripts/server-postgres/create_pg_db.sh @@ -0,0 +1,41 @@ +#!/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 + +DB_NAME="$1" +DB_USER="$2" + +if [[ -z "$DB_NAME" || -z "$DB_USER" ]]; then + echo "❌ Usage: $0 <nom_base_de_donnees> <utilisateur_postgresql>" + exit 1 +fi + +echo "🔎 Vérification de l'existence de l'utilisateur PostgreSQL '$DB_USER'..." +USER_EXISTS=$(sudo -u postgres psql -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." + 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=$(sudo -u postgres psql -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'..." + sudo -u postgres createdb -O "$DB_USER" "$DB_NAME" + echo "✅ Base de données '$DB_NAME' créée avec succès." +fi + +echo "🎉 Opération terminée."