3.1 KiB
PtitsPas Ynov - Base de Données
Ce projet contient la base de données pour l'application PtitsPas, avec scripts de migration, import de données, documentation et configuration Docker.
Prérequis
- Docker Desktop (https://www.docker.com/products/docker-desktop/)
- Docker Compose
Structure du projet
migrations/: scripts SQL pour la création et l'import de la basebdd/data_test/: fichiers CSV pour l'import de données de testdocs/: documentation métier et techniqueseed/: scripts de seedtests/: tests SQLdocker-compose.dev.yml: configuration Docker pour le développement
Lancer la base de données en local
Dans le terminal, depuis le dossier du projet :
make demo
Pour arrêter et supprimer les volumes :
make stop
Importation automatique des données de test
Les données de test (CSV) sont automatiquement importées dans la base au démarrage du conteneur Docker grâce aux scripts présents dans le dossier migrations/.
Il n'est pas nécessaire de lancer manuellement le script d'import.
Accéder à pgAdmin4
Via Docker (local)
Ouvre ton navigateur sur :
http://localhost:8081
Par défaut un administrateur est créé par la migration d'initialisation (migrations/01_init.sql).
Pour des raisons de sécurité, le mot de passe n'est pas gardé en clair dans le README.
Si tu veux un mot de passe connu en dev, génère le hash bcrypt puis modifie la migration ou crée un seed SQL :
-- Exemple pour définir le mot de passe en dev :
UPDATE utilisateurs
SET password = crypt('admin123', gen_salt('bf'))
WHERE email = 'admin@ptits-pas.fr';
Exécute la commande suivante pour appliquer ce seed sur ta base dev :
docker exec -i ptitspas-postgres-standalone psql -U admin -d ptitpas_db -c "UPDATE utilisateurs SET password = crypt('admin123', gen_salt('bf')) WHERE email = 'admin@ptits-pas.fr';"
Conseils et bonnes pratiques
- Vérifie la cohérence des identifiants dans les CSV avant import
- Pour modifier la structure, utilise les scripts de migration dans
migrations/ - Pour ajouter des scripts d'automatisation, crée un dossier
scripts/ - Documente les étapes spécifiques dans le README ou dans
docs/
Synchroniser les types ENUM avec les CSV d'import
Un utilitaire est fourni pour générer une migration sûre qui ajoute les valeurs
manquantes aux types ENUM en base en se basant sur les CSV présents dans
bdd/data_test/.
Générer la migration :
make sync-enums
Le fichier généré est migrations/00_sync_enums.sql. Relis ce fichier avant de
l'appliquer (il contient des blocs DO $$ ... ALTER TYPE ... ADD VALUE qui
ne suppriment rien mais modifient le type ENUM). Pour appliquer la migration
sur ta base locale :
# Après avoir démarré la base (make reset ou make demo)
docker exec -i ptitspas-postgres-standalone psql -U admin -d ptitpas_db -f migrations/00_sync_enums.sql
Attention : ne pas appliquer directement en production sans vérification.
Contact
Pour toute question ou contribution, consulte la documentation ou contacte l'équipe PtitsPas.