diff --git a/lib/active_record/tasks/sqlserver_database_tasks.rb b/lib/active_record/tasks/sqlserver_database_tasks.rb index faa9645cc..d5d523e56 100644 --- a/lib/active_record/tasks/sqlserver_database_tasks.rb +++ b/lib/active_record/tasks/sqlserver_database_tasks.rb @@ -7,9 +7,23 @@ def initialize(configuration) @configuration = configuration end - def drop + def create(master_established = false) + establish_master_connection unless master_established + connection.create_database configuration['database'] establish_connection configuration + + rescue ActiveRecord::StatementInvalid => error + if /Database .* already exists/ === error.message + raise DatabaseAlreadyExists + else + raise + end + end + + def drop(master_established = false) + establish_master_connection unless master_established connection.drop_database configuration['database'] + establish_connection configuration end def purge @@ -36,6 +50,12 @@ def creation_options end end + def establish_master_connection + establish_connection configuration.merge( + 'database' => 'master' + ) + end + ActiveRecord::Tasks::DatabaseTasks.register_task(/sqlserver/, ActiveRecord::Tasks::SQLServerDatabaseTasks) end end diff --git a/test/profile/query_plan_complex.rb b/test/profile/query_plan_complex.rb old mode 100755 new mode 100644 diff --git a/test/profile/query_plan_simple.rb b/test/profile/query_plan_simple.rb old mode 100755 new mode 100644