Как загрузить db из heroku?
Я использую heroku, и я хочу загрузить базу данных из моего приложения (heroku), чтобы я мог внести в нее некоторые изменения, я установил pgbackups, но используя heroku pgbackups:url
загрузки a .файл дампа
Как я могу загрузить файл postgresql или перевести его .дамп в файл postgresql?
4 ответов
Если вы используете Pgbackups Heroku (которые вы, вероятно, должны использовать):
$ heroku pg:backups capture
$ curl -o latest.dump `heroku pg:backups public-url`
"перевести" его в БД postgres с
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump
см.https://devcenter.heroku.com/articles/heroku-postgres-import-export
для этого есть команда в CLI -heroku db:pull
который сделает это для вас. db: pull может быть немного медленным, поэтому вам лучше использовать следующий вариант.
Если вы используете сложные типы данных postgress (hstore, массивы и т. д.), Вам нужно использовать плагин pgtransferhttps://github.com/ddollar/heroku-pg-transfer который в основном делает резервную копию на Heroku и восстанавливает ее локально.
UPDATE: db: pull и db:push устарели и следует заменить на pg: pull и pg: push - подробнее на https://devcenter.heroku.com/articles/heroku-postgresql#pg-push-and-pg-pull
Я нашел первый метод, предложенный в документация pull / push еще проще. Пароль или имя пользователя не требуется.
pg: потяните
pg: pull можно использовать для извлечения удаленных данных из Heroku Postgres базы данных к базе данных на локальном компьютере. Команда выглядит так это:
$ heroku pg:pull HEROKU_POSTGRESQL_MAGENTA mylocaldb --app sushi
эта команда создаст новую локальную базу данных с именем "mylocaldb" и затем вытащите данные из базы данных в
DATABASE_URL
из приложения "суши". В чтобы предотвратить случайные перезаписи и потери данных, локальный база данных не должна существовать. Вам будет предложено удалить уже существующая локальная база данных.
сначала у меня была ошибка: /bin/sh: createdb: command not found
; который я решил, следуя это так пост.
альтернативой, описанной также в документации (я еще не пробовал), является:
для экспорта данных из вашего Heroku Postgres база данных, создать новую резервное копирование и загрузка.
$ heroku pg:backups:capture $ heroku pg:backups:download
источник: импорт и экспорт баз данных Heroku Postgres с резервными копиями PG
Я думаю, что самый простой способ загрузить и реплицировать базу данных на локальном сервере:
**PGUSER**=LOCAL_USER_NAME PGPASSWORD=LOCAL_PASSWORD heroku pg:pull --app APP_NAME HEROKU_POSTGRESQL_DB_NAME LOCAL_DB_NAME
пройдите через этот документ для получения дополнительной информации: https://devcenter.heroku.com/articles/heroku-postgresql#pg-push-and-pg-pull