petitspas/database/README.md
Julien Martin 52e40d0001 feat(#131): back placement AM↔enfant + BDD garde/sans_garde
- API PATCH …/fiche, POST/DELETE …/enfants/:enfantId, GET avec amChildren
- Table enfants_assistantes_maternelles (option D, 1 garde active/enfant)
- Statuts enfant: garde/sans_garde remplacent actif (inscription → sans_garde)
- BDD.sql canonique réécrit; migration pour BDD existantes
- Seed test: hash bcrypt corrigé pour mot de passe « password »

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 14:05:39 +02:00

92 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- **`BDD.sql`** : schéma canonique (création from scratch — utilisé par `docker-compose.yml` racine)
- `migrations/` : scripts SQL pour **mettre à jour** une BDD déjà en service
- `bdd/data_test/` : fichiers CSV (import legacy)
- `docs/` : documentation métier et technique (`ENUMS.md`, `FK_POLICIES.md`)
- `seed/` : scripts de seed (`03_seed_test_data.sql` — jeu dashboard admin)
- `tests/` : tests SQL
- `docker-compose.dev.yml` : Postgres standalone (BDD.sql + seed auto)
---
## Lancer la base de données en local
Dans le terminal, depuis le dossier du projet:
```bash
docker compose -f docker-compose.dev.yml up -d
```
Pour arrêter et supprimer les volumes:
```bash
docker compose -f docker-compose.dev.yml down -v
```
---
## Réinitialiser la BDD et charger les données de test (dashboard admin)
Depuis la **racine du projet** (ptitspas-app, où se trouve `docker-compose.yml`) :
```bash
./scripts/reset-and-seed-db.sh
```
Ce script : arrête les conteneurs, supprime le volume Postgres, redémarre la base (le schéma est recréé via `BDD.sql`), puis exécute `database/seed/03_seed_test_data.sql`. Tu obtiens un super_admin (`admin@ptits-pas.fr`) plus 9 comptes de test (1 admin, 1 gestionnaire, 2 AM, 5 parents) avec **mot de passe : `password`**. Idéal pour développer le ticket #92 (dashboard admin).
## 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
```
**Email** : `admin@ptits-pas.fr`
**Mot de passe** : `admin123`
**Mot de passse pour se connecter au server local** : `admin123`
## 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/`
---
## Contact
Pour toute question ou contribution, consulte la documentation ou contacte l'équipe PtitsPas.