Manipuler des dumps avec docker

On a un dump sql que l'on veut monter sur notre container sql

Imaginons que nous avons notre dump.sql sur notre host.

On peut copier un fichier du local au container :

docker cp dump.sql mycontainer:/tmp/dump.sql

Le fichier dump.sql est maintenant sur le container, dans le dossier /tmp/

L'inverse est possible aussi (copier du container au host:

docker cp mycontainer:/foo.txt /chemin/foo.txt

On lance le batch un bash du container mysql

docker exec -ti le-container_mysql bash
``````

On lance la commande avec l'option -v ( pour voir le dump avec du "verbose" ):

`mysql` :
```bash
mysql -v —batch -h{host} -u{user} -p nom-de-la-base-de-donnée < /tmp/bdd.sql
``````

`postgresql` :
```bash
 psql -v -h{host} -U{user} -W -dnom-de-la-base-de-donnée < /tmp/bdd.sql
 ``````

Short one :)

## Backup

```bash
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql

Restore

cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE