migrations: add specific method for nodes/ways/relations enum column
authorAndy Allan <gravitystorm@gmail.com>
Sun, 9 Nov 2008 16:11:42 +0000 (16:11 +0000)
committerAndy Allan <gravitystorm@gmail.com>
Sun, 9 Nov 2008 16:11:42 +0000 (16:11 +0000)
db/migrate/007_add_relations.rb
lib/migrate.rb

index b4aff6e09e6decf1eb1f3a54c6d037604ce99d8d..c265fc3adef1507c8d4e672acf8fcb98a2fc0520 100644 (file)
@@ -11,7 +11,7 @@ class AddRelations < ActiveRecord::Migration
       t.column "member_role", :string
     end
     # enums work like strings but are more efficient
-    execute "alter table current_relation_members change column member_type member_type enum('node','way','relation');"
+    alter_column_nwr_enum :current_relation_members, :member_type
 
     add_primary_key "current_relation_members", ["id", "member_type", "member_id", "member_role"]
     add_index "current_relation_members", ["member_type", "member_id"], :name => "current_relation_members_member_idx"
@@ -41,7 +41,7 @@ class AddRelations < ActiveRecord::Migration
       t.column "version",     :bigint,  :limit => 20, :default => 0, :null => false
     end
 
-    execute "alter table relation_members change column member_type member_type enum('node','way','relation');" 
+    alter_column_nwr_enum :relation_members, :member_type 
     add_primary_key "relation_members", ["id", "version", "member_type", "member_id", "member_role"]
     add_index "relation_members", ["member_type", "member_id"], :name => "relation_members_member_idx"
 
index 585b47b1ca624d7bfc2cad06f7dd24432cb8857f..69538f1da6f86e36628f371e80b5cd55feb65ea3 100644 (file)
@@ -85,6 +85,10 @@ module ActiveRecord
       def add_fulltext_index (table_name, column)
         execute "CREATE FULLTEXT INDEX `#{table_name}_#{column}_idx` ON `#{table_name}` (`#{column}`)"
       end
+
+      def alter_column_nwr_enum (table_name, column)
+        execute "alter table #{table_name} change column #{column} #{column} enum('node','way','relation');"
+      end
     end
   end
 end