Update postgres connection adaptor patches

This commit is contained in:
Tom Hughes 2014-04-25 00:43:24 +01:00
parent 28bfb9999f
commit 17ce58df35
2 changed files with 46 additions and 44 deletions

View file

@ -2,7 +2,7 @@ if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
module ActiveRecord
module ConnectionAdapters
class PostgreSQLAdapter
def initialize_type_map_with_enums
def initialize_type_map_with_enums(type_map)
OID.alias_type "format_enum", "text"
OID.alias_type "gpx_visibility_enum", "text"
OID.alias_type "note_status_enum", "text"
@ -11,7 +11,7 @@ if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
OID.alias_type "user_role_enum", "text"
OID.alias_type "user_status_enum", "text"
initialize_type_map_without_enums
initialize_type_map_without_enums(type_map)
end
alias_method_chain :initialize_type_map, :enums

View file

@ -1,48 +1,50 @@
module ActiveRecord
module ConnectionAdapters
module SchemaStatements
def quote_column_names(column_name)
Array(column_name).map { |e| quote_column_name(e) }.join(", ")
end
def add_primary_key(table_name, column_name, options = {})
column_names = Array(column_name)
quoted_column_names = column_names.map { |e| quote_column_name(e) }.join(", ")
execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{quoted_column_names})"
end
def remove_primary_key(table_name)
execute "ALTER TABLE #{table_name} DROP PRIMARY KEY"
end
def add_foreign_key(table_name, column_name, reftbl, refcol = nil)
execute "ALTER TABLE #{table_name} ADD " +
"FOREIGN KEY (#{quote_column_names(column_name)}) " +
"REFERENCES #{reftbl} (#{quote_column_names(refcol || column_name)})"
end
def remove_foreign_key(table_name, column_name, reftbl, refcol = nil)
execute "ALTER TABLE #{table_name} DROP " +
"CONSTRAINT #{table_name}_#{column_name[0]}_fkey"
end
alias_method :old_options_include_default?, :options_include_default?
def options_include_default?(options)
return false if options[:options] =~ /AUTO_INCREMENT/i
return old_options_include_default?(options)
end
alias_method :old_add_column_options!, :add_column_options!
def add_column_options!(sql, options)
sql << " UNSIGNED" if options[:unsigned]
old_add_column_options!(sql, options)
sql << " #{options[:options]}"
end
end
class PostgreSQLAdapter
class SchemaCreation
alias_method :old_add_column_options!, :add_column_options!
def add_column_options!(sql, options)
sql << " UNSIGNED" if options[:unsigned]
old_add_column_options!(sql, options)
sql << " #{options[:options]}"
end
end
module SchemaStatements
def quote_column_names(column_name)
Array(column_name).map { |e| quote_column_name(e) }.join(", ")
end
def add_primary_key(table_name, column_name, options = {})
column_names = Array(column_name)
quoted_column_names = column_names.map { |e| quote_column_name(e) }.join(", ")
execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{quoted_column_names})"
end
def remove_primary_key(table_name)
execute "ALTER TABLE #{table_name} DROP PRIMARY KEY"
end
def add_foreign_key(table_name, column_name, reftbl, refcol = nil)
execute "ALTER TABLE #{table_name} ADD " +
"FOREIGN KEY (#{quote_column_names(column_name)}) " +
"REFERENCES #{reftbl} (#{quote_column_names(refcol || column_name)})"
end
def remove_foreign_key(table_name, column_name, reftbl, refcol = nil)
execute "ALTER TABLE #{table_name} DROP " +
"CONSTRAINT #{table_name}_#{column_name[0]}_fkey"
end
# alias_method :old_options_include_default?, :options_include_default?
#
# def options_include_default?(options)
# return false if options[:options] =~ /AUTO_INCREMENT/i
# return old_options_include_default?(options)
# end
end
alias_method :old_native_database_types, :native_database_types
def native_database_types