2012-04-16 38 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