2012-04-16 42 views
44

我想在使用Rails進行開發時在我的數據庫中查看數據(實際上在其中的所有3個開發,測試和生產中)。我沒有觸及配置,所以它應該很容易,但我無法找到任何可用的信息。如何訪問默認的Rails sqlite數據庫?

我不知道連接字符串可能是什麼或在哪裏輸入它,因爲Aptana(v.3)似乎缺乏我從Eclipse獲悉的良好的舊數據源資源管理器視圖。有人能指引我走向正確的方向嗎?

編輯:我的工作在Linux上 - 薄荷12

回答

71

你忘了提及您正在使用的操作系統。

一種方法是在您的終端中使用sqlite3命令。

sqlite3 db/development.sqlite3 

但是,對於諸如檢查行的情況,您最好使用導軌控制檯。

rails c 
> User.all # Where user is your model. 

注:不要直接通過sqlite3的改變你的DB模式,有些東西你可以使用,如果你來自一個不同的網絡棧背景。這是因爲下次運行遷移時,狀態將與Rails所期望的不同。

+0

使用linux(mint 12)。有什麼我應該知道的Linux用戶? – kostja 2012-04-16 10:45:26

+0

作品,謝謝。 – kostja 2012-04-16 10:54:05

37

Rails 3爲訪問正確的數據庫客戶端提供了一個通用命令,併爲當前環境傳遞正確數據庫的名稱。這個命令是rails dbconsole可縮短至rails db

$ rails db 
SQLite version 3.6.12 
Enter ".help" for instructions 
Enter SQL statements terminated with a ";" 
sqlite> 

該命令不提供遠遠超過Gazler的答案,其實他的建議使用控制檯是很好的建議不過這種方法的有利的一面是,它會如果您的數據庫在其他環境中不同,請使用正確的客戶端。

+1

另一個不錯的快捷鍵軌道在這裏提供,謝謝 – kostja 2012-04-16 10:55:36

8

使用

SQLite> .tables 

這會給你的列表中選擇數據庫

@@存在的所有表激活康壽

SQLite> rails dbconsole 

@@顯示錶

SQLite>.tables 

@@顯示在表

SQLite> select * from posts 
5

所有行有一個偉大的應用程序來瀏覽sqlite3的數據庫。 SQLite Database Browser

P.S. 你提到你正在使用Aptana工作室。我已經開始使用此IDE進行RoR學習,但後來發現Sublime Text並從未想過使用任何其他功能,因此我建議您查看它。

乾杯

+4

感謝提示@Dmitry,+1。我快速瀏覽了SQLite Db瀏覽器,但它讓我不知道最後一個穩定版本是在2005年發佈的,而且開發在2009年停止了。現在我正在使用[用於Firefox的SQLite Manager插件](https:/ /addons.mozilla.org/en-US/firefox/addon/sqlite-manager/)。是的,與Aptana合作是一個短暫而不愉快的經歷。來自Java並與IntelliJ合作過,我已經爲驚人的[RubyMine IDE](http://www.jetbrains.com/ruby/)解決了問題,因爲:) – kostja 2013-09-01 11:24:53

+0

感謝您分享SQLite Manager插件Firefox ...我不知道這個 – 2013-09-01 23:41:34

+1

更新:SQLite數據庫瀏覽器似乎再次活躍。最近一次正式發佈的更新日期爲2016年1月,截至撰寫本文時,最近的[github項目提交](https://github.com/sqlitebrowser/sqlitebrowser)是12小時前。 – 2016-04-12 06:49:16

0

如果使用activeadmin你可以有你的數據庫的在線訪問。

只需添加寶石activeadmin-sqlpage

gem 'activeadmin-sqlpage' 

,創造activeadmin頁:

# file app/admin/sql.rb 
ActiveAdmin::SqlPage::register 

重新啓動服務器。然後轉到管理面板並導航菜單SQL。輸入任何sql命令並按Ctrl+EnterSubmit按鈕。

0

打開終端並鍵入此命令。這將打開一個rails控制檯來查詢數據庫。

rails c 

要得到所有你可以用下面的命令

ActiveRecord::Base.connection.tables 

例如模型的列表: 「schema_migrations」, 「ar_internal_metadata」, 「類別」, 「項目」]

從模型列表中,您可以獲取第一個,最後一個或所有記錄。

Category.all