Я использую Postgres на Heroku, и мне нужно сбросить одну таблицу из моей производственной БД и сбросить ее в мою промежуточную БД. У меня установлен пояс инструментов heroku, но я не уверен, как сбросить одну таблицу базы данных для импорта в мою промежуточную базу данных.
Postgres на Heroku и сброс одной таблицы в файл дампа
Ответы (3)
Вы можете сбросить одну таблицу данных следующим образом:
$ pg_dump --no-acl --no-owner -h [host ip].compute-1.amazonaws.com -U [user name] -t [table name] --data-only [database name] > table.dump
Вы можете получить все необходимые значения с помощью этого:
$ heroku pg:credentials:url [DATABASE] -a [app_name]
Connection info string:
"dbname=[database name] host=[host ip].compute-1.amazonaws.com port=5432 user=[user name] password=[password] sslmode=require"
Connection URL:
postgres://[username]:[password]@[host ip].compute-1.amazonaws.com:5432/[database name]
Это запросит у вас пароль. Введите его, после чего вы должны перейти к получению файла table.dump
на локальном диске.
Вероятно, вы захотите обрезать таблицу при подготовке:
$ echo "truncate [table];" | heroku pg:psql [DATABASE] -a staging_app
С этим файлом вы можете использовать psql
с Connection URL:
выводом нового вызова pg:credentials
для промежуточного приложения и восстановить только эту таблицу.
$ psql "[pasted postgres:// from pg:credentials:url of staging app]" < table.dump
SET
SET
...
...
...
...
$
config/database.yml
; также попробовал пользователя, определенного в этом файле (railsapp
), с паролем. Я пробовал свой пароль heroku с различными комбинациями имен пользователей (предоставленный хэш, имя пользователя heroku в открытом виде, имя пользователя dB). Нет успеха. Получите FATAL: password authenticate failed for user [user]
во всех случаях.
- person Scro; 30.07.2015
pg_dump
, вот так: -p [port number]
- person mrt; 12.07.2016
@catsbys ответ
Мне также нужно было добавить порт
pg_dump --no-acl --no-owner -h [ip-адрес хоста].compute-1.amazonaws.com -p [порт] -U [имя пользователя] -t [имя таблицы] --data-only [имя базы данных ] > таблица.dump
Взгляните на taps (db:pull
), ваш вариант использования описан в это ответ на вопрос, я полагаю.
heroku db:pull --tables tbl_name --app dbname
, я получаю следующую ошибку: Неверный URL-адрес базы данных
- person dennismonsewicz; 20.04.2013