# Migration DB (manuel)

Ce guide explique comment importer un dump SQL venant de pgAdmin dans la base Docker.

## 1) Export pgAdmin

Dans pgAdmin:
- Format: Plain
- Options: Use INSERT commands + Use column inserts
- Fichier: `data.sql`

## 2) Normaliser le dump

Convertit les colonnes camelCase en lowercase compact.

```bash
python3 scripts/normalize-dump.py data.sql data_norm.sql --lower
```

## 3) Importer dans la base Docker

Utilise `session_replication_role` pour eviter les erreurs de contraintes circulaires.

```bash
docker compose --env-file docker/.env.docker.local exec -T db psql -U $POSTGRES_USER -d $POSTGRES_DB -v ON_ERROR_STOP=1 -c "SET session_replication_role = replica;"
docker compose --env-file docker/.env.docker.local exec -T db psql -U $POSTGRES_USER -d $POSTGRES_DB -v ON_ERROR_STOP=1 < data_norm.sql
docker compose --env-file docker/.env.docker.local exec -T db psql -U $POSTGRES_USER -d $POSTGRES_DB -v ON_ERROR_STOP=1 -c "SET session_replication_role = DEFAULT;"
```

## 4) Verifier

```bash
docker compose --env-file docker/.env.docker.local exec -T db psql -U $POSTGRES_USER -d $POSTGRES_DB -c "\\dt"
```
