use*_*363 1 ruby sqlite ruby-on-rails-3 sequel
我们试图找出我们的Rails 3.1.12应用程序是否打开带有gem续集的SQLite3数据库(版本3.6或更高版本).这是我们做的:
rails console在Rails控制台会话中,键入以下命令:
sequel = Sequel.connect('sqlite://development')
Run Code Online (Sandbox Code Playgroud)
它返回:
=> #<Sequel::SQLite::Database: "sqlite://development">
Run Code Online (Sandbox Code Playgroud)
sequel.class也会返回:
=> Sequel::SQLite::Database
Run Code Online (Sandbox Code Playgroud)但是,当尝试从数据库中选择sequel.execute或检查表时sequel.schema,返回的文本表明该表不存在.
我们不确定数据库(这里的开发)是否已经打开.我们如何检查?
副手我会说你可以尝试:
DB.test_connection
=> true
Run Code Online (Sandbox Code Playgroud)
文档test_connection说:
尝试获取数据库连接.如果成功则返回true.如果不成功,可能会引发错误.如果给出了server参数,则尝试获取与给定服务器/分片的数据库连接.
几年前,我们使用良性查询来判断连接是否存在.你可以试试:
DB["select datetime('now');"].first
Run Code Online (Sandbox Code Playgroud)
哪个回报:
{
:"datetime('now')" => "2013-06-25 06:23:44"
}
Run Code Online (Sandbox Code Playgroud)
您可能希望捕获在查询失败时可能引发的任何异常,但这表明连接也已关闭.
| 归档时间: |
|
| 查看次数: |
2755 次 |
| 最近记录: |