我想在使用apartment gem的Heroku多模式pgSQL应用程序上使用pg_dump,但我担心我有太多的模式才能使它工作。
我调查了它,并在以下link
找到了公寓宝石的创造者的以下内容我是这里引用的Apartment gem的作者。我们去过 在Heroku上使用它超过一年,它使用模式。
使用起来非常好,我们仍然可以获得很好的性能 每个模式中有50多个表的应用程序中超过100个模式。
@ 4ware提到的文章谈到了heroku的问题 pg:backups命令。 (我很确定这篇文章来自我们的文章 支持对他们的查询)
它肯定有问题,但这不是Postgresql的缺点, 带模式的模式或多租户,而不是heroku工具 本身。既然Postgresql对他们的dbs有支持,你就不会 真的需要使用他们内置的工具。我们只需要pg_dump 它和它的工作速度一样快。
如何使用外部工具?有人可以详细说明这个吗?
答案 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)