# ============================================================ # Makefile - Gestion de la base Ptits Pas (Postgres + pgAdmin) # Compatible macOS, Linux, Windows (Git Bash) # ============================================================ # Détection de l'OS UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Darwin) # macOS OPEN_CMD = open else ifeq ($(UNAME_S),Linux) # Linux OPEN_CMD = xdg-open else # Windows (Git Bash / Cygwin) OPEN_CMD = start endif # Paramètres PG_CONTAINER = ptitspas-postgres-standalone PG_USER = admin PG_DB = ptitpas_db VERIFY_SQL = /tests/sql/verify.sql IMPORT_SQL = /docker-entrypoint-initdb.d/07_import.sql # ============================================================ # Cibles principales # ============================================================ reset: @echo "🗑️ Réinitialisation de la base..." docker compose -f docker-compose.dev.yml down -v docker compose -f docker-compose.dev.yml up -d @echo "✅ Base de données réinitialisée." import: @echo "⏳ Attente que Postgres démarre..." @until docker exec -i $(PG_CONTAINER) pg_isready -U $(PG_USER) -d $(PG_DB); do \ sleep 2; \ done @echo "📥 Import des données de démo..." @docker exec -i $(PG_CONTAINER) psql -U $(PG_USER) -d $(PG_DB) -f $(IMPORT_SQL) @echo "✅ Données importées." verify: @echo "⏳ Attente que Postgres démarre pour vérifier..." @until docker exec -i $(PG_CONTAINER) pg_isready -U $(PG_USER) -d $(PG_DB); do \ sleep 2; \ done @echo "🔎 Vérification des données..." -@docker exec -i $(PG_CONTAINER) psql -U $(PG_USER) -d $(PG_DB) -f $(VERIFY_SQL) | tee verify.log @if grep -q "ERROR" verify.log; then \ echo "❌ Des erreurs détectées (voir verify.log)"; \ else \ echo "✅ Vérification OK : pas d'erreurs détectées."; \ fi demo: reset import verify @echo "🌐 Ouverture de pgAdmin sur http://localhost:8081 ..." @$(OPEN_CMD) http://localhost:8081 # ============================================================ # Utilitaires # ============================================================ logs: docker compose -f docker-compose.dev.yml logs -f psql: docker exec -it $(PG_CONTAINER) psql -U $(PG_USER) -d $(PG_DB) stop: docker compose -f docker-compose.dev.yml down stop: docker compose -f docker-compose.dev.yml down sync-enums: @echo "🔁 Génération de migrations/00_sync_enums.sql depuis les CSV" @python3 scripts/sync_enums.py > migrations/00_sync_enums.sql @echo "✅ migrations/00_sync_enums.sql générée. Relis le fichier avant de l'appliquer."