J'ai besoin de transférer une base de données d'app_1 à app_2
J'ai créé une sauvegarde sur app_1
Puis couru:
heroku pg: restauration des sauvegardes HEROKU_POSTGRESQL_COLOR --app app_2 heroku pgbackups:url --app app_1
HEROKU_POSTGRESQL_COLOR = URL de la base de données pour app_2
Alors je reçois:
! `pg:backups` is not a heroku command.
! Perhaps you meant `pgbackups`.
! See `heroku help` for a list of available commands.
Alors j'ai couru:
heroku pgbackups: restaurez HEROKU_POSTGRESQL_COLOR --app app_2 heroku pgbackups:url --app app_1
Ensuite, je reçois le texte suivant:
! WARNING: Destructive Action
! This command will affect the app: app_2
! To proceed, type "app_2" or re-run this command with --confirm app_2
J'ai donc confirmé avec:
> app_2
! Please add the pgbackups addon first via:
! heroku addons:add pgbackups
Alors j'ai couru: heroku addons:add pgbackups --app app_2
Adding pgbackups on app_2... failed
! Add-on plan not found.
Y a-t-il un moyen de contourner ce problème? toute aide serait grandement appréciée!
* Solution *
J'ai fini par envoyer un e-mail à Heroku. Ils m'ont informé que je devais heroku update; heroku plugins:update
, mais heroku update
n'est disponible que pour heroku toolbelt et j'ai installé la gemme.
Solution:
Installer Heroku toolbelt ici
Puis désinstallez la gemme:
gem uninstall heroku --all
lancez ce qui suit pour obtenir la version et il devrait sortir heroku-toolbelt
, au lieu de la gemme, plus d'infos ici
$ heroku --version
heroku-toolbelt/2.39.0 (x86_64-darwin10.8.0) Ruby/1.9.3
Pour copier les bases de données sur:
heroku pg:backups restore `heroku pgbackups:url --app app_1` HEROKU_POSTGRESQL_COLOR --app app_2
Mieux encore, vous pouvez copier directement d'une base de données à une autre sans avoir besoin de la sauvegarde:
En supposant que l'URL de la base de données app_2 est: HEROKU_POSTGRESQL_GOLD
heroku pg:copy app_1::DATABASE_URL GOLD -a app_2
Cela copiera la base de données principale d’app_1 vers la base de données GOLd sur app_2.
sa seule commande pour copier la base de données d'une application à l'autre, vous n'avez pas à sauvegarder:
heroku pg:copy app_name_to_copy_from::database_color_to_copy_from database_color_to_copy_to --app app_name_to_copy_to
vérifier ici
Si vous regardez heroku docs
il est écrit
Les sauvegardes de PG en tant que module complémentaire sont obsolètes. Les commandes font partie de l’espace de noms Heroku Postgres dans la CLI. La nouvelle fonctionnalité est en direct et disponible pour utilisation.
Vous pouvez donc utiliser pgbackups functionality directly
sans avoir à ajouter d’add-ons
Pour créer une sauvegarde, vous pouvez exécuter
heroku pg:backups capture --app app_name
si vous avez plusieurs bases de données, vous pouvez alors spécifier l'URL de la base de données}
heroku pg:backups capture HEROKU_POSTGRESQL_PINK
Pour restore from a backup on another app
vous pouvez exécuter
heroku pg:backups restore b001 DATABASE_URL --app app_name
Vous pouvez transfer database
by
heroku pg: copie DATABASE_URL HEROKU_POSTGRESQL_PINK_URL --app nom_app
Vous pouvez également upload your database to a public url and then use that url to import database
sur une autre application de
heroku pg:backups public-url b001 --app app_name
et ensuite import
it by
heroku pg:backups restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' DATABASE -a app_name
Si vous passez d'une application à une autre et souhaitez utiliser la même base de données pour une autre application, procédez comme suit:
heroku pg:copy app1_name::HEROKU_POSTGRESQL_ONYX_URL HEROKU_POSTGRESQL_AQUA_URL --app app2_name
Où la deuxième URL de base de données est sur app2_name
J'ai trouvé la solution la plus simple pour réutiliser/partager la même ressource (la base de données postgres dans ce cas - ou toute autre autorisant le partage/la réutilisation) avec plusieurs applications sur heroku:
Exemple de menu étendu mentionné à l'étape 4 ci-dessus!
C'est tout ce qu'il faut pour partager la ressource entre les applications, car celle-ci met automatiquement à jour tous les paramètres de configuration associés sur l'application cible. Cela est pratique car aucune des variables de configuration liées aux modules complémentaires ne peut être modifiée directement, du moins à partir du tableau de bord (n’a pas été vérifiée par le biais de la CLI). J'espère que cela aide tous ceux qui recherchent une chose semblable.
Selon le site Web, l'addon est amorti. Cela pourrait donc être la raison du message d'échec.
Les sauvegardes en tant qu'add-on sont obsolètes.
Puisque votre objectif est de déplacer la base de données d'une application à une autre, pourquoi ne pas suivre les instructions mentionnées dans le lien ci-dessous.
https://devcenter.heroku.com/articles/heroku-postgres-backups#direct-database-to-database-copies
J'ai eu un problème connexe. Vous pouvez enregistrer une sauvegarde sur votre ordinateur local, puis la télécharger sur un hébergement, comme Amazon s3, et importer à partir de l'URL donnée . Cette question et la réponse suivante peuvent vous aider: Impossible d'importer dans la base de données heroku postgres depuis décharge
Vous pouvez trouver utile pgAdmin III ( http://pgadmin.org/ ), un outil de gestion de base de données gratuit spécialement conçu pour effectuer ces types de tâches. Vous pouvez éditer/afficher/importer/exporter de/vers votre base de données Heroku directement. Faites-moi savoir si vous avez besoin d'aide pour la configuration. (C'est comme MySQL Workbench, mais pour PostgreSQL).