Restaurer une base postgreSQL de heroku dans un container docker local

Voici une démarche pour récuperer un backup d'une de vos applications heroku pour la mettre en local via docker.

Prérequis

Démarche

  • Lancer boot2docker (pour ceux qui ne sont pas sous linux) et avoir le shell dessus
  • Installer une image postgres : docker run -p 5432:5432 --name blog-postgres -e POSTGRES_PASSWORD=test -d postgres
    • Explication de la ligne : on crée un container docker via l'image postgres qui s'appelle blog-postgres avec le mot de passe test et on redirige le port dans le host.
  • Dans le repertoire de l'appli heroku :
    • heroku pgbackups:capture
    • heroku pgbackups:url <= il faut garder le résultat de cette ligne
  • Dans boot2docker, on ouvre une console dans le container : docker exec -it "id of running container" bash
  • Dans le bash fraichement ouvert : apt-get update && apt-get install curl
    • curl -o latest.dump "Coller le contenu du pgbackups:url"
    • pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d postgres latest.dump
    • rm latest.dump
    • exit pour sortir du bash du container postgres

Vous avez maintenant votre base postgresql dans votre container docker, accessible via un outil d'admin ou autre !

comments powered by Disqus