Ошибка pg_dump: в доступе отказано

Мне нужно использовать команду pg_dump, чтобы выгрузить мою базу данных разработки в файл, а затем загрузить ее в мое приложение heroku rails.

Я не могу использовать команду rails

  "heroku db:push"

Служба поддержки Heroku попросила меня использовать инструмент pg_dump для отправки баз данных о переносе между cleint и сервером.

Я просто запустил эту команду:

  pg_dump -U XXXXX -w app0521_development

Он выводит все содержимое моей базы данных на консоль

Но эта команда по какой-то причине терпит неудачу:

  pg_dump -U postgres -w app0521_development > test.dump

с этим сообщением об ошибке -bash: test.dump: в доступе отказано

2 ответа

Решение

Я думаю, что вам нужно либо создать специальную папку и дать пользователю / группе postgres доступ для чтения + записи, либо вы сможете отправить ее в /tmp/test.dump;

pg_dump -U postgres -w app0521_development > /tmp/test.dump

Большую часть времени (по крайней мере, в Ubuntu) папка / tmp имеет "read+write+execute" для всех. Просто предупреждение... если у него есть сенсационные данные, они доступны для всех, кто может попасть в этот ящик. Так что убирайся! Также следует отметить, что в папке / tmp установлен флаг "t". "T" означает, что только пользователь (и root), создавший файл в этом каталоге, может удалить этот файл.

Если вы хотите создать свою собственную папку, просто гуглите "chgrp" - и тогда, конечно, вам нужно дать "чтение-запись" группе.

с этим сообщением об ошибке -bash: test.dump: в доступе отказано

Попробуйте поставить> перед test.dump и посмотрите, что произойдет. Я предполагаю, что это файл резервной копии, который вы хотите иметь? Это звучит как проблемы с разрешениями файловой системы.

Другие вопросы по тегам