Update 2025-04-13_18:10:36

This commit is contained in:
root
2025-04-13 18:10:36 +02:00
commit 5cae372ac6
3 changed files with 367 additions and 0 deletions

42
init_db.sh Executable file
View File

@ -0,0 +1,42 @@
#!/bin/bash
# Script Version: 03
# Description: Erstellt PostgreSQL-User und -Datenbank für ein Spiel ($GAMENAME als Argument)
# ========
# Variablen setzen
# ========
GAMENAME="$1"
DBUSER="$GAMENAME"
DBPASS=$(openssl rand -hex 16)
# Check
if [ -z "$GAMENAME" ]; then
echo "Usage: $0 <GAMENAME>"
exit 1
fi
# ========
# PostgreSQL-User erstellen (falls nicht vorhanden)
# ========
sudo -u postgres psql <<EOF
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_catalog.pg_user WHERE usename = '${DBUSER}') THEN
CREATE USER ${DBUSER} WITH PASSWORD '${DBPASS}';
END IF;
END
\$\$;
EOF
# ========
# PostgreSQL-Datenbank erstellen (außerhalb PL/pgSQL!)
# ========
DB_EXISTS=$(sudo -u postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname='${GAMENAME}'")
if [ "$DB_EXISTS" != "1" ]; then
sudo -u postgres createdb -O "$DBUSER" "$GAMENAME"
fi
# Feedback
echo "✅ PostgreSQL-Datenbank '$GAMENAME' und User '$DBUSER' bereit."
echo "🔐 Passwort: $DBPASS"