86 lines
3.0 KiB
Makefile
86 lines
3.0 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 "🧹 Nettoyage des CSV avant import (local -> in-place)..."
|
|
@python3 scripts/clean_csv.py
|
|
@if [ $$? -ne 0 ]; then echo "❌ Erreurs lors du nettoyage des CSV - corrige les fichiers avant import"; exit 1; fi
|
|
@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."
|
|
|
|
set-dev-admin-pw:
|
|
@echo "🔐 Définir mot de passe dev pour admin@ptits-pas.fr (admin123)"
|
|
@docker exec -i $(PG_CONTAINER) psql -U $(PG_USER) -d $(PG_DB) -c "UPDATE utilisateurs SET password = crypt('admin123', gen_salt('bf')) WHERE email = 'admin@ptits-pas.fr';"
|
|
@echo "✅ Mot de passe admin dev mis à jour."
|
|
|
|
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."
|