#!/bin/bash # PIRP Reset Script - Setzt DB und Uploads komplett zurück # Default Login nach Reset: admin:admin # # Verwendung: # ./reset.sh - Interaktiv (fragt nach Docker/Lokal) # ./reset.sh docker - Nur Docker # ./reset.sh local - Nur Lokal set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" # DB-Verbindungsdaten für lokalen Betrieb (aus config.php oder Env) DB_HOST="${DB_HOST:-127.0.0.1}" DB_PORT="${DB_PORT:-5432}" DB_NAME="${DB_NAME:-pirp}" DB_USER="${DB_USER:-pirp_user}" DB_PASS="${DB_PASS:-PIRPdb2025!}" # admin:admin Password Hash ADMIN_HASH='$2y$10$YourHashHere' echo "=== PIRP Reset ===" echo "WARNUNG: Dies löscht ALLE Daten (Datenbank + Uploads)!" echo "" # Modus bestimmen MODE="$1" if [ -z "$MODE" ]; then echo "Welchen Modus verwenden?" echo " 1) Docker (docker-compose)" echo " 2) Lokal (PostgreSQL direkt)" echo "" read -p "Auswahl (1/2): " choice case "$choice" in 1) MODE="docker" ;; 2) MODE="local" ;; *) echo "Ungültige Auswahl."; exit 1 ;; esac fi echo "" read -p "Wirklich ALLE Daten löschen? (ja/nein): " confirm if [ "$confirm" != "ja" ]; then echo "Abgebrochen." exit 0 fi # Uploads löschen echo "" echo "=> Uploads löschen..." rm -rf public/uploads/logos/* 2>/dev/null || true rm -rf public/uploads/expenses/* 2>/dev/null || true rm -rf public/uploads/invoices/* 2>/dev/null || true mkdir -p public/uploads/logos public/uploads/expenses public/uploads/invoices echo " Uploads gelöscht." if [ "$MODE" = "docker" ]; then # === DOCKER MODUS === echo "" echo "=> Docker Container stoppen und Volume löschen..." docker compose down -v 2>/dev/null || docker-compose down -v 2>/dev/null || true echo "" echo "=> Docker Container neu starten..." docker compose up -d 2>/dev/null || docker-compose up -d echo "" echo "=> Warte auf Datenbank..." sleep 5 echo "" echo "=> Migrationen ausführen..." docker compose exec -T db psql -U "$DB_USER" -d "$DB_NAME" -f /docker-entrypoint-initdb.d/02-journal.sql 2>/dev/null || true else # === LOKAL MODUS === export PGPASSWORD="$DB_PASS" echo "" echo "=> Datenbank zurücksetzen..." # Alle Tabellen droppen und Schema neu erstellen echo " Schema anwenden..." psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -f schema.sql echo " Journal-Migration..." psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -f tools/migrate_journal.sql # Admin-User erstellen (admin:admin) echo " Admin-User erstellen..." ADMIN_HASH=$(php -r "echo password_hash('admin', PASSWORD_DEFAULT);") psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" <