Подтвердить что ты не робот

Postgres на Heroku и сброс одиночной таблицы в файл дампа

Я использую Postgres на Heroku, и мне нужно сбрасывать одну таблицу из моей производственной БД и выгружать ее в мою промежуточную БД. У меня установлен набор инструментов heroku, но я не уверен, как сбросить одну таблицу db для импорта в мою промежуточную базу.

4b9b3361

Ответ 1

Вы можете сбросить одну таблицу данных следующим образом:

$ 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
...
...
...
...
$ 

Ответ 2

@catsbys answer

Мне также нужно было добавить порт

pg_dump --no-acl --no-owner -h [host ip].compute-1.amazonaws.com -p [port] -U [имя пользователя] -t [имя таблицы] - только для данных [имя базы данных] > table.dump