aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2019-07-25 14:54:44 -0700
committerGitHub <noreply@github.com>2019-07-25 14:54:44 -0700
commitec7aa03c984a0daeead4f71c7189d241139a6770 (patch)
treef93166db0cf49e76f8524c5bd1093b186091cb25 /activerecord
parent04093884a1527777795ad1f17ef1c556e7db9429 (diff)
parent15c81c8ed4930574d9900a6f947d4e0ebaa82a2f (diff)
downloadrails-ec7aa03c984a0daeead4f71c7189d241139a6770.tar.gz
rails-ec7aa03c984a0daeead4f71c7189d241139a6770.tar.bz2
rails-ec7aa03c984a0daeead4f71c7189d241139a6770.zip
Merge pull request #36766 from jhawthorn/call_connection_error_number
Use connection.error_number in MySQLDatabaseTasks
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/tasks/mysql_database_tasks.rb2
-rw-r--r--activerecord/test/cases/tasks/mysql_rake_test.rb11
2 files changed, 9 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
index a7e04007a9..e3efeb75b5 100644
--- a/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
+++ b/activerecord/lib/active_record/tasks/mysql_database_tasks.rb
@@ -16,7 +16,7 @@ module ActiveRecord
connection.create_database configuration["database"], creation_options
establish_connection configuration
rescue ActiveRecord::StatementInvalid => error
- if error.cause.error_number == ER_DB_CREATE_EXISTS
+ if connection.error_number(error.cause) == ER_DB_CREATE_EXISTS
raise DatabaseAlreadyExists
else
raise
diff --git a/activerecord/test/cases/tasks/mysql_rake_test.rb b/activerecord/test/cases/tasks/mysql_rake_test.rb
index 258132835f..ac3c5bc26e 100644
--- a/activerecord/test/cases/tasks/mysql_rake_test.rb
+++ b/activerecord/test/cases/tasks/mysql_rake_test.rb
@@ -7,7 +7,10 @@ if current_adapter?(:Mysql2Adapter)
module ActiveRecord
class MysqlDBCreateTest < ActiveRecord::TestCase
def setup
- @connection = Class.new { def create_database(*); end }.new
+ @connection = Class.new do
+ def create_database(*); end
+ def error_number(_); end
+ end.new
@configuration = {
"adapter" => "mysql2",
"database" => "my-app-db"
@@ -90,9 +93,11 @@ if current_adapter?(:Mysql2Adapter)
with_stubbed_connection_establish_connection do
ActiveRecord::Base.connection.stub(
:create_database,
- proc { raise ActiveRecord::Tasks::DatabaseAlreadyExists }
+ proc { raise ActiveRecord::StatementInvalid }
) do
- ActiveRecord::Tasks::DatabaseTasks.create @configuration
+ ActiveRecord::Base.connection.stub(:error_number, 1007) do
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration
+ end
assert_equal "Database 'my-app-db' already exists\n", $stderr.string
end