create_database (name, options = {})
public
Create a new PostgreSQL
database. Options include
:owner, :template, :encoding
(defaults to utf8), :locale_provider, :locale,
:collation, :ctype, :tablespace, and
:connection_limit (note that MySQL uses
:charset while PostgreSQL
uses :encoding ).
Example:
create_database config [ :database ], config
create_database ' foo_development ', encoding : ' unicode '
Show source # File activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb, line 23
def create_database(name, options = {})
options = { encoding: "utf8" }.merge!(options.symbolize_keys)
option_string = options.each_with_object(+"") do |(key, value), memo|
memo << case key
when :owner
" OWNER = \"#{value}\""
when :template
" TEMPLATE = \"#{value}\""
when :encoding
" ENCODING = '#{value}'"
when :locale_provider
" LOCALE_PROVIDER = '#{value}'"
when :locale
" LOCALE = '#{value}'"
when :collation
" LC_COLLATE = '#{value}'"
when :ctype
" LC_CTYPE = '#{value}'"
when :tablespace
" TABLESPACE = \"#{value}\""
when :connection_limit
" CONNECTION LIMIT = #{value}"
else
""
end
end
execute "CREATE DATABASE #{quote_table_name(name)}#{option_string}"
end