summaryrefslogtreecommitdiff
path: root/config/initializers/postgresql_adapter_patch.rb
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers/postgresql_adapter_patch.rb')
-rw-r--r--config/initializers/postgresql_adapter_patch.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/config/initializers/postgresql_adapter_patch.rb b/config/initializers/postgresql_adapter_patch.rb
new file mode 100644
index 0000000..57df6a2
--- /dev/null
+++ b/config/initializers/postgresql_adapter_patch.rb
@@ -0,0 +1,30 @@
1require 'active_record/connection_adapters/postgresql_adapter'
2
3module ActiveRecord
4 module ConnectionAdapters
5 class PostgreSQLAdapter
6 def create_database(name, options = {})
7 options = options.reverse_merge(:encoding => "utf8")
8
9 option_string = options.symbolize_keys.inject("") do |memo, (key, value)|
10 memo + case key
11 when :owner
12 " OWNER = \"#{value}\""
13 when :template
14 " TEMPLATE = \"#{value}\""
15 when :encoding
16 " ENCODING = '#{value}'"
17 when :tablespace
18 " TABLESPACE = \"#{value}\""
19 when :connection_limit
20 " CONNECTION LIMIT = #{value}"
21 else
22 ""
23 end
24 end
25
26 execute "CREATE DATABASE #{quote_table_name(name)}#{option_string}"
27 end
28 end
29 end
30end