module ActiveRecord::ConnectionAdapters::SQLServer::DatabaseTasks

Public Instance Methods

charset() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 24
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 28
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 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
current_database() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/database_tasks.rb, line 20
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 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

create_database_edition_options(options = {}) click to toggle 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
create_database_options(options = {}) click to toggle 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