]> git.openstreetmap.org Git - rails.git/blobdiff - config/initializers/postgresql_adapter.rb
Avoid "unknown OID" warnings from Postgres driver
[rails.git] / config / initializers / postgresql_adapter.rb
index 6e77a3fb0577a72092921f4554a943cc64123609..ff1f7f87ad5ee1ea3d8c9491eb063a34915dfb84 100644 (file)
@@ -1,4 +1,4 @@
-if defined?(ActiveRecord::ConnectionAdaptors::PostgreSQLAdaptor)
+if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
   module ActiveRecord
     module ConnectionAdapters
       class PostgreSQLAdapter
@@ -58,6 +58,33 @@ if defined?(ActiveRecord::ConnectionAdaptors::PostgreSQLAdaptor)
         rescue
           nil
         end
+
+        def initialize_type_map_with_enums
+          OID.alias_type "format_enum", "text"
+          OID.alias_type "gpx_visibility_enum", "text"
+          OID.alias_type "note_status_enum", "text"
+          OID.alias_type "note_event_enum", "text"
+          OID.alias_type "nwr_enum", "text"
+          OID.alias_type "user_role_enum", "text"
+          OID.alias_type "user_status_enum", "text"
+
+          initialize_type_map_without_enums
+        end
+
+        alias_method_chain :initialize_type_map, :enums
+      end
+
+      class PostgreSQLColumn
+        def simplified_type_with_enum(field_type)
+          case field_type
+          when /_enum$/
+            :string
+          else
+            simplified_type_without_enum(field_type)
+          end
+        end
+
+        alias_method_chain :simplified_type, :enum
       end
     end
   end