Module: ActiveRecord::SchemaStatements

Defined in:
lib/active_record/pg_collation/schema_statements.rb

Instance Method Summary collapse

Instance Method Details

#create_collation(name, options = {}) ⇒ Object

Create a collation

CREATE COLLATION [ IF NOT EXISTS ] name (

[ LOCALE = locale, ]
[ LC_COLLATE = lc_collate, ]
[ LC_CTYPE = lc_ctype, ]
[ PROVIDER = provider, ]
[ DETERMINISTIC = boolean, ]
[ VERSION = version ]

)



20
21
22
23
# File 'lib/active_record/pg_collation/schema_statements.rb', line 20

def create_collation(name, options = {})
  query_options = options.map {|k,v| %Q{#{k} = '#{v}'} }.join(", ")
  execute(%Q{CREATE COLLATION IF NOT EXISTS #{name} (#{query_options})}).tap {reload_type_map}
end

#create_collation_from(name, existing_collation) ⇒ Object

Create a collation from

CREATE COLLATION [ IF NOT EXISTS ] name FROM existing_collation



28
29
30
# File 'lib/active_record/pg_collation/schema_statements.rb', line 28

def create_collation_from(name, existing_collation)
  execute(%Q{CREATE COLLATION IF NOT EXISTS #{name} FROM "#{existing_collation}"}).tap {reload_type_map}
end

#drop_collation(name, option = "RESTRICT") ⇒ Object

Drop a collation

DROP COLLATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]



35
36
37
# File 'lib/active_record/pg_collation/schema_statements.rb', line 35

def drop_collation(name, option = "RESTRICT")
  execute(%Q{DROP COLLATION IF EXISTS #{name} #{option}}).tap {reload_type_map}
end