## Comment migrer une base de données PostgreSQL d'un ancien serveur dokku à un nouveau serveur Kamal
1. **Sur le serveur dokku**, sauvegardez votre base de données :
```bash
dokku postgres:export project-database > project.dump
```
en modifiant :
- `project-database` par le nom de votre base de données dokku (récupérable avec `dokku postgres:report`)
2. **Depuis votre poste d'administration**, copiez la sauvegarde vers votre nouveau serveur Kamal :
```bash
scp user@dokku-server:project.dump user@kamal-server:project.dump
```
3. Restaurez la sauvegarde **sur votre nouveau serveur** Kamal :
```bash
cat project.dump | sudo docker exec -i project-db pg_restore -c --no-privileges --no-owner -U project -d project_production
```
en prenant le soin de modifier :
- `project-db` par le nom de votre container de base de données PostgresQL (récupérable avec la commande `docker container ps`)
- `project` par le nom de votre projet (`POSTGRES_USER`)
- `project_production` par le nom de votre base de données (`POSTGRES_DB`)
## Comment migrer un stockage persistant local d'un ancien serveur dokku vers un nouveau serveur Kamal
1. **Sur le serveur dokku**, localisez le répertoire de votre stockage persistant :
```bash
dokku storage:report
```
2. **Sur le serveur Kamal**, localisez le répertoire de votre stockage persistant :
```bash
docker volume ls
docker volume inspect project_storage
```
en modifiant `project_storage` par le nom de votre volume.
3. **Depuis votre poste d'administration**, copiez les fichiers vers votre nouveau serveur Kamal :
```bash
scp -r user@dokku-server:/var/lib/dokku/data/storage/project-storage user@kamal-server:/var/lib/docker/volumes/project_storage/_data
```
en modifiant les variables.
4. **Sur le nouveau serveur Kamal**, modifiez les droits des fichiers :
```bash
sudo chown -R root:root /var/lib/docker/volumes/project_storage/_data
```