1

我需要使用 pg_dump 命令将我的开发数据库转储到一个文件中,然后将其上传到我的 heroku 托管的 rails 应用程序。

我无法使用 rails 命令

  "heroku db:push"

Heroku 支持要求我使用 pg_dump 工具在客户端和服务器之间发送传输数据库。

我刚刚运行了这个命令:

  pg_dump -U XXXXX -w app0521_development

它将我的数据库的全部内容输出到控制台

但是这个命令由于某种原因失败了:

  pg_dump -U postgres -w app0521_development > test.dump

带有此错误消息 -bash: test.dump: Permission denied

4

2 回答 2

2

我认为您要么需要创建一个特殊文件夹并授予 postgres 用户/组对其的读+写权限,要么您应该能够将其发送到 /tmp/test.dump;

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

大多数时候(至少在 Ubuntu 上),/tmp 文件夹对每个人都有“读+写+执行”。只是一个警告......如果它有敏感数据,它就会出现在每个可以进入那个盒子的人身上。所以,把它清理干净!另外值得注意的是,/tmp 文件夹设置了“t”标志。“t”表示只有在此目录中创建文件的用户(和 root)才能删除该文件。

如果您想创建自己的文件夹,只需谷歌“chgrp” - 然后您当然需要为该组提供“读写”权限。

于 2012-09-29T04:29:57.870 回答
0

带有此错误消息 -bash: test.dump: Permission denied

尝试在 test.dump 之前放一个 > 看看会发生什么。我假设这是您想要的备份文件?这听起来像文件系统权限问题。

于 2012-09-29T04:17:06.763 回答