Ruby on rails 如何在不使用Heroku工具的情况下使用pg_转储?

Ruby on rails 如何在不使用Heroku工具的情况下使用pg_转储?,ruby-on-rails,postgresql,heroku,multi-tenant,apartment-gem,Ruby On Rails,Postgresql,Heroku,Multi Tenant,Apartment Gem,我想在使用公寓gem的Heroku多模式pgSQL应用程序上使用pg_dump,但恐怕我的模式太多,无法正常工作 我查看了一下,从下面的公寓宝石的创建者那里发现了以下内容 我是这里提到的公寓宝石的作者。我们一直在 在Heroku上使用它一年多了,它使用了模式 使用起来确实很好,我们仍然可以很好地使用它 一个应用程序中有100多个模式,每个模式有50多个表 @4ware提到的文章讨论了heroku的 pg:备份命令。(我敢肯定那篇文章出自我们的 支持对他们的查询) 它肯定有问题,但这不是Postg

我想在使用公寓gem的Heroku多模式pgSQL应用程序上使用pg_dump,但恐怕我的模式太多,无法正常工作

我查看了一下,从下面的公寓宝石的创建者那里发现了以下内容

我是这里提到的公寓宝石的作者。我们一直在 在Heroku上使用它一年多了,它使用了模式

使用起来确实很好,我们仍然可以很好地使用它 一个应用程序中有100多个模式,每个模式有50多个表

@4ware提到的文章讨论了heroku的 pg:备份命令。(我敢肯定那篇文章出自我们的 支持对他们的查询)

它肯定有问题,但这不是Postgresql的缺点, 模式或具有模式的多租户,而不是heroku工具 它本身既然Postgresql在其dbs上有了ingres支持,您就不需要了 真的需要使用他们的内置工具。我们需要的时候就倒垃圾 而且它的工作速度和人们预期的一样快


如何使用外部工具?有人能详细解释一下吗?

我不知道那个人说的“安格尔”是什么意思——当然不是产品,安格尔。也许是“入口”,即“入境”

在任何情况下:您都可以使用任何支持libpq协议的工具直接与Heroku上的PostgreSQL数据库建立SSL连接。这包括
psql
。。。和
pg_dump

简单地说:

pg_dump -Fc -f mydb.dbbackup "sslmode=require host=my.heroku.host.name port=5432 dbname=my.heroku.db.name user=my.heroku.user"
(使用您想要的任何其他选项)

请注意,Heroku数据库凭据可能会根据上面的文档链接进行更改。因此,如果您要自动执行此操作或定期执行此操作,则应使用Heroku帐户动态获取数据库凭据:


我发现
错误:您必须至少安装一个postgresql客户端程序包。
。使用
pg(0.18.1)
,但是否需要安装其他东西?@bser,是的。这就是错误消息所说的。安装
postgresql-client-9.3
或任何您的postgresql版本。考虑到这个错误,你听起来像是在Debian或Ubuntu上,所以它将使用
aptitude install
@CraigRinger,
pg_dump-Fc-f../backups/my_app_db.dbbackup$(heroku pg:credentials DATABASE--app my_app_name)
这行代码真的有效吗?在我的例子中,它说“pg_dump的参数太多了”@gaussblurinc-Heroku一定改变了
pg:credentials
命令的输出格式。尝试将
$(…)
用双引号括起来,即
“$(heroku…)”
它不再是简单的一行代码,heroku更新了它们的输出和命令本身(添加
:url
子命令)。您现在需要使用heroku pg:credentials:url数据库,并手动复制/粘贴它返回的字符串。当然,也可以使用一些疯狂的ruby/perl命令来为您提取输出。但不要太疯狂,因为heroku会再次改变它。
pg_dump -Fc -f mydb.dbbackup $(heroku pg:credentials DATABASE)