Update 2025-04-13_18:10:36
This commit is contained in:
42
init_db.sh
Executable file
42
init_db.sh
Executable 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"
|
||||
|
Reference in New Issue
Block a user