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?
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
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)
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'