Merge pull request #36766 from jhawthorn/call_connection_error_number
Use connection.error_number in MySQLDatabaseTasks
This commit is contained in:
commit
ec7aa03c98
@ -16,7 +16,7 @@ def create
|
||||
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
|
||||
|
@ -7,7 +7,10 @@
|
||||
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 @@ def test_create_when_database_exists_outputs_info_to_stderr
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user