module ActiveRecord::ConnectionAdapters::SQLServer::DatabaseTasks
Public Instance Methods
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 24 def charset select_value "SELECT DATABASEPROPERTYEX(DB_NAME(), 'SqlCharSetName')" end
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 28 def collation @collation ||= select_value "SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation')" end
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 7 def create_database(database, options = {}) name = SQLServer::Utils.extract_identifiers(database) db_options = create_database_options(options) edition_options = create_database_edition_options(options) execute "CREATE DATABASE #{name} #{db_options} #{edition_options}" end
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 20 def current_database select_value "SELECT DB_NAME()" end
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 14 def drop_database(database) name = SQLServer::Utils.extract_identifiers(database) execute "ALTER DATABASE #{name} SET SINGLE_USER WITH ROLLBACK IMMEDIATE" execute "DROP DATABASE #{name}" end
Private Instance Methods
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 47 def create_database_edition_options(options = {}) keys = [:maxsize, :edition, :service_objective] copts = @connection_parameters edition_options = { maxsize: copts[:azure_maxsize], edition: copts[:azure_edition], service_objective: copts[:azure_service_objective] }.merge(options.symbolize_keys).select { |_, v| v.present? }.slice(*keys).map { |k, v| "#{k.to_s.upcase} = #{v}" }.join(", ") edition_options = "( #{edition_options} )" if edition_options.present? edition_options end
Source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 34 def create_database_options(options = {}) keys = [:collate] copts = @connection_parameters options = { collate: copts[:collation] }.merge(options.symbolize_keys).select { |_, v| v.present? }.slice(*keys).map { |k, v| "#{k.to_s.upcase} #{v}" }.join(" ") options end