mirror of
https://github.com/github/rails.git
synced 2026-01-09 14:48:01 -05:00
Merge pull request #10925 from senny/10917_test_to_prevent_regression
regression test + mysql2 adapter raises correct error if conn is closed. Conflicts: activerecord/CHANGELOG.md
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
## unreleased ##
|
||||
* Fix mysql2 adapter raises the correct exception when executing a query on a
|
||||
closed connection.
|
||||
|
||||
*Yves Senn*
|
||||
|
||||
* Fix the `:primary_key` option for `has_many` associations.
|
||||
Fixes #10693.
|
||||
|
||||
@@ -204,9 +204,11 @@ module ActiveRecord
|
||||
|
||||
# Executes the SQL statement in the context of this connection.
|
||||
def execute(sql, name = nil)
|
||||
# make sure we carry over any changes to ActiveRecord::Base.default_timezone that have been
|
||||
# made since we established the connection
|
||||
@connection.query_options[:database_timezone] = ActiveRecord::Base.default_timezone
|
||||
if @connection
|
||||
# make sure we carry over any changes to ActiveRecord::Base.default_timezone that have been
|
||||
# made since we established the connection
|
||||
@connection.query_options[:database_timezone] = ActiveRecord::Base.default_timezone
|
||||
end
|
||||
|
||||
super
|
||||
end
|
||||
|
||||
26
activerecord/test/cases/disconnected_test.rb
Normal file
26
activerecord/test/cases/disconnected_test.rb
Normal file
@@ -0,0 +1,26 @@
|
||||
require "cases/helper"
|
||||
|
||||
class TestRecord < ActiveRecord::Base
|
||||
end
|
||||
|
||||
class TestDisconnectedAdapter < ActiveRecord::TestCase
|
||||
self.use_transactional_fixtures = false
|
||||
|
||||
def setup
|
||||
@connection = ActiveRecord::Base.connection
|
||||
end
|
||||
|
||||
def teardown
|
||||
spec = ActiveRecord::Base.connection_config
|
||||
ActiveRecord::Base.establish_connection(spec)
|
||||
@connection = nil
|
||||
end
|
||||
|
||||
test "can't execute statements while disconnected" do
|
||||
@connection.execute "SELECT count(*) from products"
|
||||
@connection.disconnect!
|
||||
assert_raises(ActiveRecord::StatementInvalid) do
|
||||
@connection.execute "SELECT count(*) from products"
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user