2012-02-13 84 views
13

我試圖看看我的heroku實例上的數據。 我希望能夠查看他們的服務器上的數據庫..在heroku上查看數據庫

我不想把它拉到我的本地系統..更重要的是,我不想等待那麼久,以看看數據。

讓我們假設我把我目前的8萬冊圖書(和所有相關的元數據)數據庫最多的Heroku。然後在兩個月內再增加1200萬。 (我仍處於開發模式) 如果我遇到一批數據有問題,我認爲將整個數據庫下拉並不可行。

我想我可以做仰臥起坐,而我等待下載數據的違規記錄。我聽說那是編程期間的老程序員做的。


我已經看了Viewing database in Heroku和它只是「不能做到這一點。」
這是真的嗎?我們無法查看實時數據?

回答

3

(未經測試,但它似乎是你在找什麼..)

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

+0

到目前爲止最好的答案.. – baash05 2012-02-13 04:54:00

+2

現在該插件已被棄用。 :( – 2013-02-10 15:25:38

+0

來自自述文件「此服務已被棄用,請使用heroku pg:psql代替。」這絕對是最佳答案,並作爲單獨的答案列在下面:http://stackoverflow.com/a/14793836/2098573 – rysqui 2015-07-19 04:56:36

0

取決於你所說的「查看數據庫」是什麼。如果你正在尋找一個真正的SQL控制檯,你可能不太好運;然而,總是有heroku console,它可以讓你訪問連接到你的應用程序和它的Heroku數據庫的IRB會話。從那裏,你可以使用通常的命令,如Book.where("title = ?", @title)Book.count或任何你需要的。

+0

好吧..我想的是一個控制檯。我在這本書中遇到的問題是,我想要書。我想在列表中看到它們。不是一個對象,我不得不編寫代碼來讓它們顯示。對我來說這似乎很笨拙。 – baash05 2012-02-13 02:19:18

0

那麼,這是不是一個完美的答案,但得到的最好的辦法是與IMO控制檯。

爲了讓這個更容易一些,我已經把一個類的方法對我的一些模型來打印。從我的應用程序的一個例子是:

class User 

    def self.list 
    puts "ID. Name - Email\n" 
    self.all.each do |user| 
     puts "#{user.id}. #{user.name} - #{user.email}\n" 
    end 
    end 

end 

在控制檯,你可以叫User.list以獲取列表。

現在這種方法沒有得到很好的優化,如果它被寫成可以被鏈接到查詢的最後,那麼會更好,但是你會得到基本的想法。

這是一個有點cludgy但做這樣的顯示屏的輔助方法可能是反思在Heroku數據的最快方式。

否則,我的建議會聯繫他們並要求提供建議,根據我的經驗,Heroku員工對此類要求非常敏感並且很有幫助。

我希望這給你一個想法或兩個。

+0

並非所有的靈活,但謝謝..我正在努力與我的heroku遷移,雖然能夠看到的數據不是我最大的衝動,但它是一個。再次感謝。 – baash05 2012-02-13 04:46:59

0

您無法直接連接到共享Heroku實例 - 如果您使用專用的Postgres Heroku插件,則可以直接連接本地系統中的PG工具。但是,要做到這一點,需要花費大量成本。

+0

不與新的共享postgres add- – 2012-02-13 11:22:18

3

要直接從Heroku查看數據庫,我只需在https://dataclips.heroku.com/上創建整個數據庫的「Dataclip」。你也可以從postgreSQL應用程序中獲得。在此頁面上,執行SQL查詢以查看所需的數據。

如果你不確定該表是在數據庫中,查看他們:

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

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

JackDB是一個數據庫客戶端,在您的Web瀏覽器中與Heroku集成了OAuth。它允許您列出您的Heroku應用程序及其各自的數據源,然後連接到它們以運行SQL查詢。有關如何在Heroku中使用它的詳細信息,請參閱docs

這裏是什麼樣子:

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


另外還有JackDB Heroku plugin對Heroku的CLI。插件讓你從命令行運行heroku jackdb來連接到你的默認數據庫。如果您有多個數據庫並且想明確選擇您想要連接的數據庫,則還有其他選項。

進行安裝:

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

要連接到您的默認數據庫:

$ heroku jackdb 

披露:我的JackDB創始人。

+0

這很容易,很快。真棒應用程序!!! – AllieCat 2014-08-12 16:55:33

+2

JackDB不再免費,任何其他解決方案? – 2014-10-02 18:52:58

7

嘗試

heroku pg:psql 

你瞭解下一步自動

0

我知道這是一個老問題,但認爲我會回答爲了防止有人感興趣。我一直在使用PG Commander在本地和heroku上查看我的數據庫。這不是免費的(目前是28英鎊),但它非常好。

轉到您的Heroku databases,所有登錄詳細信息將在那裏。

+0

這是一個老問題.. pgadmin是一個免費的應用程序,它很容易掛鉤以heroku ..所以你可以看到數據庫是生活在heroku。 – baash05 2015-03-12 05:46:55

+0

感謝您的輸入雖然..並歡迎SO。 – baash05 2015-03-12 05:47:19

0

嘗試DBHawkDatasparc。我們要求Datasparc爲我們創建一個在線演示,它工作。