module ActiveRecord::ConnectionAdapters::SQLServer::DatabaseTasks

Public Instance Methods

charset() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 23
def charset
  select_value "SELECT DATABASEPROPERTYEX(DB_NAME(), 'SqlCharSetName')"
end
collation() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 27
def collation
  @collation ||= select_value "SELECT DATABASEPROPERTYEX(DB_NAME(), 'Collation')"
end
create_database(database, options = {}) click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 6
def create_database(database, options = {})
  name = SQLServer::Utils.extract_identifiers(database)
  db_options = create_database_options(options)
  edition_options = create_database_edition_options(options)
  do_execute "CREATE DATABASE #{name} #{db_options} #{edition_options}"
end
current_database() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 19
def current_database
  select_value 'SELECT DB_NAME()'
end
drop_database(database) click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 13
def drop_database(database)
  name = SQLServer::Utils.extract_identifiers(database)
  do_execute "ALTER DATABASE #{name} SET SINGLE_USER WITH ROLLBACK IMMEDIATE"
  do_execute "DROP DATABASE #{name}"
end

Private Instance Methods

create_database_edition_options(options={}) click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 46
def create_database_edition_options(options={})
  keys  = [:maxsize, :edition, :service_objective]
  copts = @connection_options
  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
create_database_options(options={}) click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 33
def create_database_options(options={})
  keys  = [:collate]
  copts = @connection_options
  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