]> git.openstreetmap.org Git - rails.git/commitdiff
Switch to using native rails support for managing Postgres enumerations
authorTom Hughes <tom@compton.nu>
Wed, 15 Nov 2023 18:19:54 +0000 (18:19 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 15 Nov 2023 18:25:05 +0000 (18:25 +0000)
config/initializers/migrate.rb
db/migrate/007_add_relations.rb
db/migrate/039_add_more_controls_to_gpx_files.rb
db/migrate/044_create_user_roles.rb
db/migrate/051_add_status_to_user.rb
db/migrate/053_add_map_bug_tables.rb
db/migrate/057_add_map_bug_comment_event.rb
db/migrate/20110521142405_rename_bugs_to_notes.rb
db/migrate/20120214210114_add_text_format.rb
db/migrate/20160822153055_create_issues_and_reports.rb
db/migrate/20231029151516_add_importer_role.rb

index 43dd446a3fdf4e3b485681a3f77a4c3d72b2c4a5..1af67dd10d518961cd36307c41395af95def1aa6 100644 (file)
@@ -42,25 +42,6 @@ if defined?(ActiveRecord::ConnectionAdapters::AbstractAdapter)
 
           execute "ALTER TABLE #{table_name} ADD PRIMARY KEY USING INDEX #{constraint_name}"
         end
-
-        def create_enumeration(enumeration_name, values)
-          execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
-        end
-
-        def drop_enumeration(enumeration_name)
-          execute "DROP TYPE #{enumeration_name}"
-        end
-
-        def add_enumeration_value(enumeration_name, value)
-          execute "ALTER TYPE #{enumeration_name} ADD VALUE '#{value}'"
-        end
-
-        def rename_enumeration(old_name, new_name)
-          old_name = quote_table_name(old_name)
-          new_name = quote_table_name(new_name)
-
-          execute "ALTER TYPE #{old_name} RENAME TO #{new_name}"
-        end
       end
     end
   end
index 1e5bc5d3af78ed916c82fedf5b68bd6a8df462b3..29ba7ee3823f1cee0c9b5d19e0c3c03c3374e0c6 100644 (file)
@@ -1,7 +1,7 @@
 class AddRelations < ActiveRecord::Migration[4.2]
   def self.up
     # enums work like strings but are more efficient
-    create_enumeration :nwr_enum, %w[Node Way Relation]
+    create_enum :nwr_enum, %w[Node Way Relation]
 
     # a relation can have members much like a way can have nodes.
     # differences:
index 728b56989ee78d7c46c3372c3f0ec700c9d49916..9f6d621487eea640b7ce5c19d2f3661609a1a419 100644 (file)
@@ -4,7 +4,7 @@ class AddMoreControlsToGpxFiles < ActiveRecord::Migration[4.2]
   end
 
   def self.up
-    create_enumeration :gpx_visibility_enum, %w[private public trackable identifiable]
+    create_enum :gpx_visibility_enum, %w[private public trackable identifiable]
     add_column :gpx_files, :visibility, :gpx_visibility_enum, :default => "public", :null => false
     Trace.where(:public => false).update_all(:visibility => "private")
     add_index :gpx_files, [:visible, :visibility], :name => "gpx_files_visible_visibility_idx"
index ece98a54d8f3022abfd7d2533c52ccbb4e60f2bb..ca00d15d4cda81b8acc8ec9377847d2200050527 100644 (file)
@@ -6,7 +6,7 @@ class CreateUserRoles < ActiveRecord::Migration[4.2]
   end
 
   def self.up
-    create_enumeration :user_role_enum, %w[administrator moderator]
+    create_enum :user_role_enum, %w[administrator moderator]
 
     create_table :user_roles do |t|
       t.column :user_id, :bigint, :null => false
index f170e0de887c247aedd000f788d6ac4645c81f9f..bea9f125f62a25e3e351be5306ed9f6ee7396ceb 100644 (file)
@@ -3,7 +3,7 @@ class AddStatusToUser < ActiveRecord::Migration[4.2]
   end
 
   def self.up
-    create_enumeration :user_status_enum, %w[pending active confirmed suspended deleted]
+    create_enum :user_status_enum, %w[pending active confirmed suspended deleted]
 
     add_column :users, :status, :user_status_enum, :null => false, :default => "pending"
 
index 6ad3af0eb66a41de4f40d869dcbe710134d7e6c6..682a736d0272f7e468654102f4618e31c73c1d07 100644 (file)
@@ -1,6 +1,6 @@
 class AddMapBugTables < ActiveRecord::Migration[4.2]
   def self.up
-    create_enumeration :map_bug_status_enum, %w[open closed hidden]
+    create_enum :map_bug_status_enum, %w[open closed hidden]
 
     create_table :map_bugs do |t|
       t.integer :latitude, :null => false
index c88544099156f547d09d8e4b0d46815ddc330d81..087d0f6924b9621b3867cd4c3c078e8e68159390 100644 (file)
@@ -1,6 +1,6 @@
 class AddMapBugCommentEvent < ActiveRecord::Migration[4.2]
   def self.up
-    create_enumeration :map_bug_event_enum, %w[opened closed reopened commented hidden]
+    create_enum :map_bug_event_enum, %w[opened closed reopened commented hidden]
 
     add_column :map_bug_comment, :event, :map_bug_event_enum
   end
index d3260dfa17463d8906027590237ec2dc68d53a42..2e90b5ce886899c58d40b132fe61dfeebfb49f65 100644 (file)
@@ -1,7 +1,7 @@
 class RenameBugsToNotes < ActiveRecord::Migration[4.2]
   def self.up
-    rename_enumeration "map_bug_status_enum", "note_status_enum"
-    rename_enumeration "map_bug_event_enum", "note_event_enum"
+    rename_enum "map_bug_status_enum", :to => "note_status_enum"
+    rename_enum "map_bug_event_enum", :to => "note_event_enum"
 
     rename_table :map_bugs, :notes
     rename_index :notes, "map_bugs_changed_idx", "notes_updated_at_idx"
@@ -23,7 +23,7 @@ class RenameBugsToNotes < ActiveRecord::Migration[4.2]
     rename_index :notes, "notes_updated_at_idx", "map_bugs_changed_idx"
     rename_table :notes, :map_bugs
 
-    rename_enumeration "note_event_enum", "map_bug_event_enum"
-    rename_enumeration "note_status_enum", "map_bug_status_enum"
+    rename_enum "note_event_enum", :to => "map_bug_event_enum"
+    rename_enum "note_status_enum", :to => "map_bug_status_enum"
   end
 end
index be8089a746f52d0b2bbbb667b46c27e2bd60da82..2fcb77d46482cd19d6079594949353e8a62d8a7a 100644 (file)
@@ -1,6 +1,6 @@
 class AddTextFormat < ActiveRecord::Migration[4.2]
   def up
-    create_enumeration :format_enum, %w[html markdown text]
+    create_enum :format_enum, %w[html markdown text]
     add_column :users, :description_format, :format_enum, :null => false, :default => "html"
     add_column :user_blocks, :reason_format, :format_enum, :null => false, :default => "html"
     add_column :diary_entries, :body_format, :format_enum, :null => false, :default => "html"
index 07a549820ac2e9b6cd91a79b35185eccf3c0fea6..83a9d9171558e38e0a4724f42d42a0a260cdd477 100644 (file)
@@ -1,6 +1,6 @@
 class CreateIssuesAndReports < ActiveRecord::Migration[5.0]
   def up
-    create_enumeration :issue_status_enum, %w[open ignored resolved]
+    create_enum :issue_status_enum, %w[open ignored resolved]
 
     create_table :issues do |t|
       t.string :reportable_type, :null => false
index f3fcdb85f5f12e5bf72a1087ede63c69902d2f98..9eaab1c05e1845155f415d812230b206269cdeab 100644 (file)
@@ -1,9 +1,5 @@
 class AddImporterRole < ActiveRecord::Migration[7.1]
-  def up
-    add_enumeration_value :user_role_enum, "importer"
-  end
-
-  def down
-    raise ActiveRecord::IrreversibleMigration
+  def change
+    add_enum_value :user_role_enum, "importer"
   end
 end