72 lines
2.2 KiB
Makefile

# ============================================================
# 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
j