]> source.dussan.org Git - redmine.git/commitdiff
Fixed: Migration 71 broken if run with code >= r803 (Enumeration#before_save relies...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 5 Oct 2007 22:53:26 +0000 (22:53 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 5 Oct 2007 22:53:26 +0000 (22:53 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@809 e93f8b46-1217-0410-a6f0-8f06a7374b81

db/migrate/072_add_enumerations_position.rb

index 7def8677285361ca4807f26fc75e5b4a601aff73..6f2a9321909bfd5925547b683c35aa7f14da695b 100644 (file)
@@ -1,8 +1,11 @@
 class AddEnumerationsPosition < ActiveRecord::Migration
   def self.up
-    add_column :enumerations, :position, :integer, :default => 1, :null => false
+    add_column(:enumerations, :position, :integer, :default => 1, :null => false) unless Enumeration.column_names.include?('position')
     Enumeration.find(:all).group_by(&:opt).each_value  do |enums|
-      enums.each_with_index {|enum, i| enum.update_attribute(:position, i+1)}
+      enums.each_with_index do |enum, i|
+        # do not call model callbacks
+        Enumeration.update_all "position = #{i+1}", {:id => enum.id}
+      end
     end
   end