mirror of
https://github.com/github/rails.git
synced 2026-01-28 07:48:00 -05:00
MySQL: work around ruby-mysql/mysql-ruby inconsistency with mysql.stat. Eliminate usage of mysql.ping because it doesn't guarantee reconnect. Explicitly close and reopen the connection instead. References #428.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3216 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* MySQL: work around ruby-mysql/mysql-ruby inconsistency with mysql.stat. Eliminate usage of mysql.ping because it doesn't guarantee reconnect. Explicitly close and reopen the connection instead. [Jeremy Kemper]
|
||||
|
||||
* Added preliminary support for polymorphic associations [DHH]
|
||||
|
||||
* Added preliminary support for join models [DHH]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user