La base de données PostgreSQL est exécutée dans le conteneur db (voir Docker). Les commandes ci-dessous s'exécutent depuis la racine du projet avec make ou docker compose.
Pour plus de détails sur le schéma, voir Structure des données.
Restaure la base à partir d'un fichier dump (format custom PostgreSQL compressé). Le schéma est recréé puis les données sont importées ; les migrations Doctrine sont réappliquées ensuite.
make db-restore
Avec un fichier dump personnalisé :
DUMP=/chemin/vers/mon.dump make db-restore
Par défaut : le fichier utilisé est save-france.dump à la racine du projet.
Étapes effectuées :
dbDROP SCHEMA public CASCADE puis recréation du schémapg_restore avec le rôle appGénère un dump complet de la base (format custom, compressé) et le copie à la racine sous le nom défini par DUMP.
make db-dump
Avec un nom de fichier personnalisé :
DUMP=backup-$(date +%Y%m%d).dump make db-dump
Par défaut : le fichier produit est save-france.dump.
Étapes effectuées :
VACUUM FULL pour compacterpg_dump en format custom (-F c) avec compression niveau 9Supprime toutes les données « métier » tout en conservant les tables de configuration (référentiels, paramètres, offres, catégories, etc.).
make db-truncate-data
Tables vidées :
request, request_offer, request_contract, request_equipment, request_refusal, request_refusal_reason, pricetroubleshooting, troubleshooting_diagnosisaddressTables conservées (configuration) :
admin, civility, parameter, refusal_reason, diagnosisequipment_category, equipment_type, equipment_brand, coefficient_ratemaintenance_offer, maintenance_offer_feature, featurepostal_code, discount, troubleshooting_recipientrefresh_tokens, reset_password_request, etc.Le script SQL utilisé est scripts/truncate-data-tables.sql.
Applique les migrations en attente (une seule transaction, rollback en cas d’erreur).
make db-migrate
Équivalent à :
docker compose exec api bin/console doctrine:migrations:migrate --no-interaction --all-or-nothing
Charge les données de test définies dans api/sources/src/DataFixtures/.
make fixtures
Équivalent à :
docker compose exec api bin/console doctrine:fixtures:load --no-interaction
Se connecter à PostgreSQL en ligne de commande :
docker compose exec -u postgres db psql -d app -U app
Exécuter une requête unique :
docker compose exec -u postgres db psql -d app -U app -w -c "SELECT COUNT(*) FROM request;"
Exécuter un fichier SQL (depuis l’hôte) :
docker compose exec -T -u postgres db psql -d app -U app -w -f - < scripts/truncate-data-tables.sql
| Action | Commande |
|---|---|
| Restaurer depuis un dump | make db-restore |
| Créer un dump | make db-dump |
| Vider les données métier | make db-truncate-data |
| Migrations | make db-migrate |
| Fixtures | make fixtures |
| Shell PostgreSQL | docker compose exec -u postgres db psql -d app -U app |
db-restore et db-dump (défaut : save-france.dump).