From: Tom Hughes Date: Thu, 24 Apr 2014 23:43:24 +0000 (+0100) Subject: Update postgres connection adaptor patches X-Git-Tag: live~4351^2~6 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/17ce58df35922b6b4d78c334f267f5db057ef022 Update postgres connection adaptor patches --- diff --git a/config/initializers/postgresql_adapter.rb b/config/initializers/postgresql_adapter.rb index 012e401d2..9dcc34fcc 100644 --- a/config/initializers/postgresql_adapter.rb +++ b/config/initializers/postgresql_adapter.rb @@ -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 diff --git a/lib/migrate.rb b/lib/migrate.rb index 7c14333b3..7f8d33693 100644 --- a/lib/migrate.rb +++ b/lib/migrate.rb @@ -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 + class PostgreSQLAdapter + class SchemaCreation + alias_method :old_add_column_options!, :add_column_options! - def remove_primary_key(table_name) - execute "ALTER TABLE #{table_name} DROP PRIMARY KEY" + def add_column_options!(sql, options) + sql << " UNSIGNED" if options[:unsigned] + old_add_column_options!(sql, options) + sql << " #{options[:options]}" + end 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 + module SchemaStatements + def quote_column_names(column_name) + Array(column_name).map { |e| quote_column_name(e) }.join(", ") + 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 + 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 - alias_method :old_options_include_default?, :options_include_default? + def remove_primary_key(table_name) + execute "ALTER TABLE #{table_name} DROP PRIMARY KEY" + end - def options_include_default?(options) - return false if options[:options] =~ /AUTO_INCREMENT/i - return old_options_include_default?(options) - 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 - alias_method :old_add_column_options!, :add_column_options! + 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 - def add_column_options!(sql, options) - sql << " UNSIGNED" if options[:unsigned] - old_add_column_options!(sql, options) - sql << " #{options[:options]}" +# 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 - end - class PostgreSQLAdapter alias_method :old_native_database_types, :native_database_types def native_database_types