关于ruby on rails:查看heroku上的数据库

Looking at the database on heroku

我试图看看我的heroku实例上的数据。
我希望能够在他们的服务器上查看数据库..

我不想把它拉到我的本地系统..更重要的是我不想等那么久,看看数据。

让我们假设我将当前数据库中的800万本书(以及所有相关的元数据)推送到heroku。 然后在两个月内我又增加了1200万。 (我还处于开发模式)
如果我对一批数据有问题,我认为下拉整个数据库是不可行的。

我想在等待下载数据时我可以做仰卧起坐。 我听说这是旧程序员在编译时所做的事情。

我看过在Heroku中查看数据库,它只是一个"不能这样做"。
真的吗? 我们无法查看实时数据?


您可以使用JackDB(http://www.jackdb.com)。

JackDB是Web浏览器中的数据库客户端,它与Heroku集成OAuth。它允许您列出Heroku应用程序及其各自的数据源,然后连接到它们以运行SQL查询。有关如何将其与Heroku一起使用的详细信息,请参阅文档。

这是它的样子:

http://static.jackdb.com/assets/img/blog/jackdb-heroku-oauth-connect.gif

还有用于Heroku CLI的JackDB Heroku插件。该插件允许您从命令行运行heroku jackdb以连接到默认数据库。如果您有多个数据库并且想要明确选择要连接的数据库,还有其他选项。

要安装它:

1
$ heroku plugins:install https://github.com/jackdb/jackdb-heroku-plugin.git

要连接到默认数据库:

1
$ heroku jackdb

完全披露:我是JackDB的创始人。


来自https://devcenter.heroku.com/articles/heroku-postgresql

Heroku Postgres可以通过CLI附加到Heroku应用程序:
$ heroku addons:add heroku-postgresql:dev

要与远程数据库建立psql会话,请使用heroku pg:psql


尝试

1
heroku pg:psql

您将自动了解后续步骤


要直接从Heroku查看数据库,我只需在https://dataclips.heroku.com/上创建整个数据库的"Dataclip"。您也可以从postgreSQL应用程序到达那里。在此页面中,执行SQL查询以查看所需数据。

如果您不确定数据库中有哪些表,请使用以下命令查看它们:

1
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

(未经测试但看起来它正是你要找的......)

https://github.com/ddollar/heroku-sql-console


试试Datasparc的DBHawk。我们要求Datasparc为我们创建一个在线演示,并且它有效。


我知道这是一个老问题,但我想如果有人有兴趣我会回答。我一直在使用PG Commander在本地和heroku上查看我的数据库。它不是免费的(目前28英镑),但它非常好。

转到您的Heroku数据库,所有登录详细信息都将在那里。


您无法直接连接到Shared Heroku实例 - 如果您使用专用的Postgres Heroku插件,则可以直接连接本地系统的PG工具。但是,这样做会有很大的成本上涨。


嗯,这不是一个完美的答案,但最好的方法是使用控制台IMO。

为了使这更容易一些,我在我的一些模型上放了一个类方法来打印它们。我的应用程序的一个例子是:

1
2
3
4
5
6
7
8
9
10
11
12
class USER

  def SELF.list
    puts"ID. Name  -  Email
"

    SELF.all.each do |USER|
      puts"#{user.id}.  #{user.name}  -  #{user.email}
"

    END
  END

END

在控制台中,您只需调用User.list即可获取列表。

现在这个方法没有得到很好的优化,如果它被编写它会更好,它可以被链接到查询的末尾,但你得到了基本的想法。

这有点笨拙,但制作这样的显示辅助方法可能是在Heroku上内省数据的最快方法。

否则,我的建议是联系他们并询问建议,根据我的经验,Heroku的工作人员非常敏感,对此类请求很有帮助。

我希望这会给你一个或两个想法。


取决于"查看数据库"的含义。如果你正在寻找一个真正的SQL控制台,你可能会运气不好;但是,总有heroku console可以让您访问附加到您的应用程序及其Heroku数据库的IRB会话。从那里,您可以使用常用命令,如Book.where("title = ?", @title)Book.count或任何您需要的命令。