🗄️ Datenbank-Setup für Entwickler¶
Dieses Dokument beschreibt, wie Sie eine neue Entwicklungsdatenbank für Carambus einrichten können.
🚀 Schnellstart (Empfohlen)¶
Option 1: Datenbank-Dump importieren¶
- Datenbank-Dump beschaffen
- Von einem anderen Entwickler im Team
- Aus Ihrem lokalen
carambus_api
Ordner -
Vom Team Lead
-
Datenbank erstellen und Dump importieren
# Datenbank erstellen createdb carambus_development # Dump importieren psql -d carambus_development -f /pfad/zu/ihrem/dump.sql # Beispiel: psql -d carambus_development -f tmp/carambus_api_development_20250813_230822.sql
-
Erwartete Fehler (können ignoriert werden)
ERROR: relation "table_name" already exists ERROR: multiple primary keys for table "table_name" are not allowed ERROR: relation "index_name" already exists ERROR: constraint "constraint_name" for relation "table_name" already exists ERROR: duplicate key value violates unique constraint "ar_internal_metadata_pkey"
Diese Fehler sind normal, wenn die Datenbank bereits teilweise initialisiert wurde.
Option 2: Neue Datenbank erstellen¶
# Nur verwenden, wenn kein Dump verfügbar ist
rails db:create
rails db:migrate
rails db:seed
🔧 Detaillierte Anleitung¶
Voraussetzungen¶
- PostgreSQL ist installiert und läuft
createdb
undpsql
Kommandos sind verfügbar- Sie haben Zugriff auf eine Datenbank-Dump-Datei
Dump-Datei vorbereiten¶
-
Dump-Datei finden
# Typische Namen: # - carambus_api_development_YYYYMMDD_HHMMSS.sql # - carambus_development_dump.sql # - carambus_api_development.sql
-
Dump-Datei überprüfen
# Dateigröße prüfen ls -lh /pfad/zu/ihrem/dump.sql # Erste Zeilen anzeigen head -20 /pfad/zu/ihrem/dump.sql
Datenbank erstellen¶
# Neue Datenbank erstellen
createdb carambus_development
# Oder mit spezifischen Parametern
createdb -h localhost -U username carambus_development
Dump importieren¶
# Einfacher Import
psql -d carambus_development -f /pfad/zu/ihrem/dump.sql
# Mit spezifischen Parametern
psql -h localhost -U username -d carambus_development -f /pfad/zu/ihrem/dump.sql
# Mit Fortschrittsanzeige
psql -d carambus_development -f /pfad/zu/ihrem/dump.sql -v ON_ERROR_STOP=0
Import überwachen¶
# Import-Logs anzeigen
tail -f /var/log/postgresql/postgresql-*.log
# Datenbank-Verbindung testen
psql -d carambus_development -c "SELECT version();"
psql -d carambus_development -c "\dt"
🐳 Docker-Integration¶
Automatischer Import¶
Wenn Sie Docker verwenden, können Sie den Dump automatisch importieren lassen:
# docker-compose.yml
services:
postgres:
volumes:
- ./database/carambus_development.sql:/docker-entrypoint-initdb.d/carambus_development.sql
Manueller Import in Docker-Container¶
# Dump in laufenden Container importieren
docker exec -i container_name psql -U username -d database_name < dump.sql
# Beispiel:
docker exec -i carambus_postgres_1 psql -U www_data -d carambus_development < dump.sql
🚨 Fehlerbehebung¶
Häufige Probleme¶
-
Berechtigungsfehler
# PostgreSQL-Benutzer überprüfen sudo -u postgres psql -c "\du" # Benutzer erstellen falls nötig sudo -u postgres createuser --interactive username
-
Datenbank existiert bereits
# Datenbank löschen und neu erstellen dropdb carambus_development createdb carambus_development
-
Import schlägt fehl
# Dump-Datei auf Syntax-Fehler prüfen psql -d carambus_development -f dump.sql 2>&1 | grep -i error # Dump-Datei reparieren (falls nötig) sed -i 's/CREATE SCHEMA IF NOT EXISTS "public";//' dump.sql
Verifikation¶
Nach dem Import sollten Sie folgende Tabellen sehen:
psql -d carambus_development -c "\dt" | grep -E "(users|clubs|tournaments|leagues)"
📚 Weitere Ressourcen¶
Tipp: Verwenden Sie immer einen Datenbank-Dump für die Entwicklung, da dieser alle aktuellen Daten und das korrekte Schema enthält.