Загрузка данных из дампа Postgres в новую базу данных в Docker Postgres Container - PullRequest
0 голосов
/ 21 мая 2018

Я перемещаю приложение из Heroku в контейнеры Docker и пытаюсь выяснить, как перенести данные из моей базы данных Heroku в мой новый контейнер Postgres.

Попытка пока

Я скопировал дамп базы данных в контейнер Postgres.

docker cp latest.dump mycontainer:/latest.dump

Однако, когда я пытаюсь его pg_restore, Я получаю ошибки при попытке выполнить команду docker exec.

docker exec <pg_container> pg_restore -d <db_name> latest.dump

pg_restore: [archiver (db)] connection to database "<db_name>" failed: FATAL:  role "root" does not exist

Или когда я пытаюсь запустить с пользователем db:

docker exec <pg_container> -u <db_user> pg_restore -d <db_name> latest.dump

OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"-u\": executable file not found in $PATH": unknown

Вопрос

Как правильно загружать эти данные в новую базу данных в контейнере Docker?

1 Ответ

0 голосов
/ 21 мая 2018

Мне удалось найти решение в виде однострочной команды:

docker exec <container_name> pg_restore --verbose --clean --no-acl --no-owner -h postgres --dbname=postgresql://<user>:<password>@127.0.0.1:<port>/<db_name> latest.dump

latest.dump - это имя моего дампа базы данных из Heroku, поэтому его можно изменить на любое имя вашего дампа..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...