我需要使用pg_dump命令将我的开发数据库转储到一个文件,然后将其上传到我的heroku托管rails应用程序。
我无法使用rails命令
"heroku db:push"
Heroku支持人员要求我使用pg_dump工具在cleint和server之间发送传输数据库。
我刚刚运行了这个命令:
pg_dump -U XXXXX -w app0521_development
它将我的数据库的全部内容输出到控制台
但是这个命令由于某种原因失败了:
pg_dump -U postgres -w app0521_development > test.dump
出现此错误消息 -bash:test.dump:权限被拒绝
答案 0 :(得分:1)
我认为您需要创建一个特殊的文件夹并给postgres用户/组访问权限读取+写入,或者您应该能够将其发送到/tmp/test.dump;
pg_dump -U postgres -w app0521_development > /tmp/test.dump
大多数时候(至少在Ubuntu上),/ tmp文件夹对每个人都有“read + write + execute”。只是一个警告...如果它有敏感的数据,它就在那里,每个人都可以上机。所以,清理它!另外值得注意的是,/ tmp文件夹设置了“t”标志。 “t”表示只有在此目录中创建文件的用户(和root)才能删除该文件。
如果你想创建自己的文件夹,只需谷歌“chgrp” - 当然你需要给小组“读写”。
答案 1 :(得分:0)
出现此错误消息-bash:test.dump:Permission denied
尝试输入>在test.dump之前,看看会发生什么。我假设那是你想要的备份文件?这听起来像文件系统权限问题。