Dans un précédent post, je faisais mes premiers pas avec Docker. Arrive rapidement la situation où, vous avez deux conteneurs. L’un avec une base de données spatiale en développement et l’autre avec LA base de données en production.
Bon, et il peut arriver qu’on veuille sauvegarder les données et/ou restaurer ces données. Typiquement. Vous avez peuplé votre base de nouvelles tables, vues, fonctions… et c’est le moment de passer tout ça en production… Voilà une piste !
Sauvegarder la base de données avec pg_dump ou pg_dumpall
docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
ou si la base existe déjà (et que vous ne voulez pas vous soucier des « owner » et « privileges »)
docker exec -t your-db-container pg_dump -d fs_gis -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
Envoyer le dump dans le conteneur de production
cat your_dump.sql | docker exec -i your-db-container psql -d dbname -U postgres
Le `|` est utilisé pour envoyer les information « lut » par le `cat` au fur et à mesure dans psql !
Source :