diff options
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rwxr-xr-x | activerecord/lib/active_record/connection_adapters/mysql_adapter.rb | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb index c43a84a386..6327840752 100755 --- a/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb @@ -155,18 +155,20 @@ module ActiveRecord else @connection.query 'select 1' end - true + + # mysql-ruby doesn't raise an exception when stat fails. + if @connection.respond_to?(:errno) + @connection.errno.zero? + else + true + end rescue Mysql::Error false end def reconnect! - if @connection.respond_to?(:ping) - @connection.ping - else - @connection.close rescue nil - connect - end + @connection.close rescue nil + connect end |