ruby - 我们如何验证 Sequel.connect 是否在 Rails 中打开了我们的 SQLite3 数据库?

标签 ruby ruby-on-rails-3 sqlite sequel

我们正在尝试确定我们的 Rails 3.1.12 应用程序是否可以使用 gem sequel 打开 SQLite3 数据库(3.6 或更高版本)。这是我们所做的:

  1. rails 控制台
  2. 在 Rails 控制台 session 中,键入以下命令:

    sequel = Sequel.connect('sqlite://development')
    

    它返回:

    => #<Sequel::SQLite::Database: "sqlite://development">
    

    sequel.class 也返回:

    => Sequel::SQLite::Database
    

然而,当尝试使用 sequel.execute 从数据库中选择或使用 sequel.schema 检查表时,返回的文本表明该表不存在。

我们不太确定数据库(这里是开发)是否已经打开。我们如何检查?

最佳答案

顺便说一句,你可以试试:

DB.test_connection
=> true

test_connection 的文档说:

Attempts to acquire a database connection. Returns true if successful. Will probably raise an Error if unsuccessful. If a server argument is given, attempts to acquire a database connection to the given server/shard.

几年前,我们使用良性查询来判断连接是否有效。你可以试试:

DB["select datetime('now');"].first

哪个返回:

{
    :"datetime('now')" => "2013-06-25 06:23:44"
}

您可能希望捕获查询失败时可能引发的任何异常,但这表明连接也已断开。

关于ruby - 我们如何验证 Sequel.connect 是否在 Rails 中打开了我们的 SQLite3 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287623/

相关文章:

database - Sqlite 给列的大小超过了需要

sql - 由 UNION 形成的表的列名

ruby-on-rails - 将用户数据发送到远程网络服务器时法拉第超时错误 ReadTimeout

ruby-on-rails - 强参数问题,无法分配新方法。

ruby - Mechanize 无法通过行动找到形式

ruby-on-rails - rails : Friendly_id does not generate slugs for old records

ruby-on-rails - 纯 HTML 和 Rails/ERB 帮助程序模板之间的性能差异

ruby - 要使用多个键散列的数组

ruby-on-rails-3 - 错误 : migrate SQLite to Postgres

android - 无法将列动态添加到 sqlite 表中