如何在不使用Heroku工具的情况下使用pg_dump?

时间:2014-08-24 02:33:15

标签: ruby-on-rails postgresql heroku multi-tenant apartment-gem

我想在使用apartment gem的Heroku多模式pgSQL应用程序上使用pg_dump,但我担心我有太多的模式才能使它工作。

我调查了它,并在以下link

找到了公寓宝石的创造者的以下内容
  

我是这里引用的Apartment gem的作者。我们去过   在Heroku上使用它超过一年,它使用模式。

     

使用起来非常好,我们仍然可以获得很好的性能   每个模式中有50多个表的应用程序中超过100个模式。

     

@ 4ware提到的文章谈到了heroku的问题   pg:backups命令。 (我很确定这篇文章来自我们的文章   支持对他们的查询)

     

它肯定有问题,但这不是Postgresql的缺点,   带模式的模式或多租户,而不是heroku工具   本身。既然Postgresql对他们的dbs有支持,你就不会   真的需要使用他们内置的工具。我们只需要pg_dump   它和它的工作速度一样快。

如何使用外部工具?有人可以详细说明这个吗?

1 个答案:

答案 0 :(得分:4)

我不知道那个人的意思是什么?“ingres” - 肯定不是产品,Ingres。也许“ingress”,即“inbound”?

在任何情况下:您可以使用任何支持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"

(使用您想要的任何其他选项)。

请参阅the Heroku documentation for more details

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

pg_dump -Fc -f mydb.dbbackup $(heroku pg:credentials DATABASE)