Pg_dump error: permission denied


I need to use the pg_dump command to dump my development db to a file and then upload this to my heroku hosted rails app.

I am unable to use the rails command

  "heroku db:push"

I have been asked by Heroku support to use the pg_dump tool to send transfer databases between cleint and server.

I just ran this command:

  pg_dump -U XXXXX -w app0521_development

It output the entire contents of my database to the console

But this command for some reason fails:

  pg_dump -U postgres -w app0521_development > test.dump

with this error message -bash: test.dump: Permission denied

I think you will either need to make a special folder and give the postgres user/group access read+write to it, or you should be able to send it to /tmp/test.dump;

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

Most of the time (at least on Ubuntu), the /tmp folder has "read+write+execute" for everyone. Just a warning... if it's got sensative data, it's out there for everyone that can get on that box. So, clean it up! And also of note, the /tmp folder has the "t" flag set. The "t" indicates that only the user (and root) that created a file in this directory can delete that file.

If you want to create your own folder, just google "chgrp" - and then of course you need to give "read-write" to the group.