如何访问默认的 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+EnterSubmit 按钮。

【讨论】:

【参考方案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 的数据库和模式

如何从我的 servlet 类访问放置在 /tmp 文件夹中的 sqlite db 文件?

SQL 基础学习: 和深度学习资料

如何查看sqlite数据库的 .db文件中的表的内容数据