create_database (name, options = {})
public
Create a new PostgreSQL database. Options include :owner,
:template, :encoding
(defaults to utf8), :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 56
def create_database(name, options = {})
options = { encoding: 'utf8' }.merge!(options.symbolize_keys)
option_string = options.inject("") do |memo, (key, value)|
memo += case key
when :owner
" OWNER = \"#{value}\""
when :template
" TEMPLATE = \"#{value}\""
when :encoding
" ENCODING = '#{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