web-dev-qa-db-fra.com

Comment puis-je importer un fichier .sql dans ma base de données PostgreSQL Heroku?

J'ai un fichier sql de sauvegarde d'une autre base de données que je souhaite importer dans la base de données postgres de Heroku. Comment tu fais ça?

34
Some Guy

Voici comment procéder:

heroku pg:psql --app YOUR_APP_NAME_HERE < updates.sql

Et si vous souhaitez restaurer votre production en mise en scène (en supposant que les deux sont des bases de données Heroku Postgres):

heroku pgbackups:restore YOUR_STAGING_DATABASE_NAME `heroku pgbackups:url --app YOUR_PRODUCTION_APP_NAME` --app YOUR_STAGING_APP_NAME --confirm YOUR_STAGING_APP_NAME

Assurez-vous de conserver les guillemets spéciaux spéciaux autour de "heroku pgbackups: url --app YOUR_PRODUCTION_APP_NAME".

-------- MISE À JOUR HEROKU TOOLBELT --------

Heroku a récemment mis à jour sa ceinture d'outils afin que les anciennes commandes ne soient plus valides (voir ce lien pour plus d'informations). Voici la nouvelle version de la commande de restauration.

heroku pg:backups restore `heroku pg:backups public-url -a YOUR_PRODUCTION_APP_NAME` YOUR_STAGING_DATABASE_NAME --app YOUR_STAGING_APP_NAME --confirm YOUR_STAGING_APP_NAME
72
SergeyB

Création d'un fichier de sauvegarde:

pg_dump -U USERNAME DATABASE --no-owner --no-acl -f backup.sql 

Restauration du fichier sql vers heroku:

heroku pg:psql --app APPNAME < backup.sql 

(Bonus) Suppression de toutes les tables de la base de données de l'application Heroku (exemple):

heroku pg:reset --app APPNAME HEROKU_POSTGRESQL_ROSE

obtenir DATABASE_URL à partir du panneau posgresql heroku (ligne psql)

17
Abel

Chargez le SQL dans une instance Postgres locale et assurez-vous qu'il est correct. Vider ensuite les données en utilisant les instructions ici: https://devcenter.heroku.com/articles/heroku-postgres-import-export

Enfin, téléchargez le vidage sur un serveur Web public (comme S3) et restaurez-le sur Heroku comme ceci:

heroku pgbackups:restore DATABASE 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump'
2
Dan Kohn