如何访问默认的 Rails sqlite db?
Posted
技术标签:
【中文标题】如何访问默认的 Rails sqlite db?【英文标题】:How to access default Rails sqlite db? 【发布时间】:2012-04-27 15:19:00 【问题描述】:我想在使用 Rails 开发时查看我的数据库中的数据(实际上是在开发、测试和生产这三个阶段)。我没有接触过配置,所以应该很容易,但我找不到任何可用的信息。
我不知道连接字符串可能是什么或在哪里输入它,因为 Aptana (v.3) 似乎缺少我从 Eclipse 知道的良好的旧数据源浏览器视图。有人能指出我正确的方向吗?
编辑:我正在使用 linux - Mint 12
【问题讨论】:
【参考方案1】:您忘记提及您正在使用的操作系统。
一种方法是在终端中使用sqlite3
命令。
sqlite3 db/development.sqlite3
但是,对于检查行之类的事情,最好使用 rails 控制台。
rails c
> User.all # Where user is your model.
注意:不要直接通过 sqlite3 更改您的数据库架构,如果您来自不同的 Web 堆栈背景,您可能会习惯这样做。这是因为下次运行迁移时,状态将与 rails 预期的不同。
【讨论】:
使用 linux (mint 12)。作为 linux 用户,我应该注意什么?【参考方案2】: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 的答案更多的东西,事实上他使用控制台的建议是很好的建议,但是这种方法的好处是,如果您的数据库在其他环境中不同,它将使用正确的客户端。
【讨论】:
【参考方案3】:使用
SQLite> .tables
这将为您提供所选数据库中存在的所有表的列表
@@激活控制台
SQLite> rails dbconsole
@@显示表格
SQLite>.tables
@@ 显示表中的所有行
SQLite> select * from posts
【讨论】:
【参考方案4】:有一个很棒的应用程序可以浏览 sqlite3 数据库。 SQLite Database Browser.
附: 您提到您正在使用 Aptana 工作室。我也开始使用这个 IDE 开始我的 RoR 学习,但后来发现了 Sublime Text 并且再也不想使用其他任何东西,我建议你检查一下。
干杯
【讨论】:
感谢@Dmitry 的提示,+1。我快速浏览了 SQLite Db 浏览器,但看到最后一个稳定版本已于 2005 年发布,并且在 2009 年停止开发,这让我很沮丧。现在我正在使用SQLite Manager plugin for firefox。是的,与 Aptana 合作是一段短暂而不愉快的经历。来自 Java 并与 IntelliJ 合作过,我已经适应了惊人的 RubyMine IDE 并且从那时起就没有回头 :) 感谢您分享 Firefox 的 SQLite Manager 插件...我不知道这个 更新:SQLite 数据库浏览器似乎再次处于活动状态。上次正式发布的更新日期为 2016 年 1 月,截至撰写本文时,最近的 github commit on the project 是 12 小时前。 也许您可以通过将 PS 部分中不相关的软件建议替换为一些有关此工具为何好的信息,或者如何使用它来解决此任务的信息来改进此答案?【参考方案5】:如果您使用activeadmin
,您可以在线访问您的数据库。
只需添加 gem activeadmin-sqlpage:
gem 'activeadmin-sqlpage'
并创建activeadmin页面:
# file app/admin/sql.rb
ActiveAdmin::SqlPage::register
重启你的服务器。然后转到管理面板并导航菜单SQL
。输入任意 sql 命令并按Ctrl+Enter
或Submit
按钮。
【讨论】:
【参考方案6】:打开终端并输入此命令。这将打开一个 Rails 控制台来查询数据库。
rails c
要获取所有模型的列表,您可以使用以下命令
ActiveRecord::Base.connection.tables
示例:["schema_migrations", "ar_internal_metadata", "categories", “项目”]
从模型列表中,您可以获得第一条、最后一条或所有记录。
Category.all
【讨论】:
【参考方案7】:如果您使用的是 RubyMine IDE,您可以从那里访问 sqllite 数据源。您可以使用 GUI 在数据库中运行查询或编辑数据。
【讨论】:
【参考方案8】:为了查看 DB 上的数据,我使用了一个名为 DB Browser for SQLite 的 SQLite 客户端,here is the link
这个应用程序也有 Linux 版本。应用程序的db
目录上应该有一个扩展名为sqlite
的数据库文件。在 DB Browser 上,选择 Open Database 选项并选择该文件,您应该能够查看数据。
【讨论】:
以上是关于如何访问默认的 Rails sqlite db?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQLite 迁移到 PostgreSQL (Rails)
如何访问 Android 模拟器中的本地文件夹以检索 SQLite db?
如何查看 django sqlite3 db 的数据库和模式