在使用ActiveRecord时,为什么Mysql2::Error引发而不是ActiveRecord错误



我使用ActiveRecord在thor脚本中创建与数据库的连接。在本例中,我使用的适配器是mysql2。我想在我的代码中添加一些救援块,以便向用户提供一些特定的错误消息。

当我关闭本地主机上的mysql服务器并尝试连接(使用establish_connection)时,我得到了以下错误(正如预期的那样)

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)

为什么我没有得到一个ActiveRecord::ConnectionNotEstablished错误,而不是Mysql2::error?我问的原因是Mysql2没有特定的错误类型(基于https://github.com/brianmario/mysql2/blob/master/lib/mysql2/error.rb)而活动记录(http://api.rubyonrails.org/files/activerecord/lib/active_record/errors_rb.html)

使用ruby 1.9.3和activerecord 3.2.8与mysql2 0.3.11

谢谢!

查找mysql套接字似乎有问题

这个链接可能会帮助你,

RubyonRails 3 Can';t通过socket'/tmp/mysql.sock';在OSX 上

相关内容

最新更新