]> git.openstreetmap.org Git - rails.git/blobdiff - lib/migrate.rb
Merge branch 'master' into openstreetbugs
[rails.git] / lib / migrate.rb
index e30d071cd5a77e5170791d50b5226b34ab227742..8f7e635f13c9a170f04ca703421481f0b6cec389 100644 (file)
@@ -168,18 +168,23 @@ module ActiveRecord
           @enumerations ||= Hash.new
         end
 
-        def create_enumeration (enumeration_name, values)
+        def create_enumeration(enumeration_name, values)
           enumerations[enumeration_name] = values
-          execute "create type #{enumeration_name} as enum ('#{values.join '\',\''}')"
+          execute "CREATE TYPE #{enumeration_name} AS ENUM ('#{values.join '\',\''}')"
         end
 
-        def drop_enumeration (enumeration_name)
-          execute "drop type #{enumeration_name}"
+        def drop_enumeration(enumeration_name)
+          execute "DROP TYPE #{enumeration_name}"
           enumerations.delete(enumeration_name)
         end
 
+        def rename_enumeration(old_name, new_name)
+          execute "ALTER TYPE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
+        end
+
         def alter_primary_key(table_name, new_columns)
-          execute "alter table #{table_name} drop constraint #{table_name}_pkey; alter table #{table_name} add primary key (#{new_columns.join(',')})"
+          execute "ALTER TABLE #{table_name} DROP CONSTRAINT #{table_name}_pkey"
+          execute "ALTER TABLE #{table_name} ADD PRIMARY KEY (#{new_columns.join(',')})"
         end
 
         def interval_constant(interval)
@@ -207,6 +212,14 @@ module ActiveRecord
           execute "CREATE #{index_type} INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} USING #{index_method} (#{quoted_column_names})"
         end
       end
+
+      def rename_index(table_name, old_name, new_name)
+        execute "ALTER INDEX #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
+      end
+
+      def rename_sequence(table_name, old_name, new_name)
+        execute "ALTER SEQUENCE #{quote_table_name(old_name)} RENAME TO #{quote_table_name(new_name)}"
+      end
     end
   end
 end