annotate db/migrate/20090312194159_add_projects_trackers_unique_index.rb @ 929:5f33065ddc4b redmine-1.3

Update to Redmine SVN rev 9414 on 1.3-stable branch
author Chris Cannam
date Wed, 27 Jun 2012 14:54:18 +0100
parents 513646585e45
children 622f24f53b42
rev   line source
Chris@0 1 class AddProjectsTrackersUniqueIndex < ActiveRecord::Migration
Chris@0 2 def self.up
Chris@0 3 remove_duplicates
Chris@0 4 add_index :projects_trackers, [:project_id, :tracker_id], :name => :projects_trackers_unique, :unique => true
Chris@0 5 end
Chris@0 6
Chris@0 7 def self.down
Chris@0 8 remove_index :projects_trackers, :name => :projects_trackers_unique
Chris@0 9 end
Chris@0 10
Chris@0 11 # Removes duplicates in projects_trackers table
Chris@0 12 def self.remove_duplicates
Chris@0 13 Project.find(:all).each do |project|
Chris@0 14 ids = project.trackers.collect(&:id)
Chris@0 15 unless ids == ids.uniq
Chris@0 16 project.trackers.clear
Chris@0 17 project.tracker_ids = ids.uniq
Chris@0 18 end
Chris@0 19 end
Chris@0 20 end
Chris@0 21 end