Module: ActiveRecord::ConnectionAdapters::SQLServer::DatabaseTasks

Included in:
ActiveRecord::ConnectionAdapters::SQLServerAdapter
Defined in:
lib/active_record/connection_adapters/sqlserver/database_tasks.rb

Instance Method Summary collapse

Instance Method Details

#charsetObject



30
31
32
# File 'lib/active_record/connection_adapters/sqlserver/database_tasks.rb', line 30

def charset
  select_value "SELECT DATABASEPROPERTYEX(DB_NAME(), 'SqlCharSetName')"
end

#collationObject



34
35
36
# File 'lib/active_record/connection_adapters/sqlserver/database_tasks.rb', line 34

def collation
  select_value "SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation')"
end

#create_database(database, options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/active_record/connection_adapters/sqlserver/database_tasks.rb', line 6

def create_database(database, options = {})
  name = SQLServer::Utils.extract_identifiers(database)
  options = {collation: @connection_options[:collation]}.merge!(options.symbolize_keys)
  options = options.select { |_, v| v.present? }
  option_string = options.inject("") do |memo, (key, value)|
    memo += case key
    when :collation
      " COLLATE #{value}"
    else
      ""
    end
  end
  do_execute "CREATE DATABASE #{name}#{option_string}"
end

#current_databaseObject



26
27
28
# File 'lib/active_record/connection_adapters/sqlserver/database_tasks.rb', line 26

def current_database
  select_value 'SELECT DB_NAME()'
end

#drop_database(database) ⇒ Object



21
22
23
24
# File 'lib/active_record/connection_adapters/sqlserver/database_tasks.rb', line 21

def drop_database(database)
  name = SQLServer::Utils.extract_identifiers(database)
  do_execute "DROP DATABASE #{name}"
end