diff db/migrate/.svn/text-base/20090312194159_add_projects_trackers_unique_index.rb.svn-base @ 0:513646585e45

* Import Redmine trunk SVN rev 3859
author Chris Cannam
date Fri, 23 Jul 2010 15:52:44 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/db/migrate/.svn/text-base/20090312194159_add_projects_trackers_unique_index.rb.svn-base	Fri Jul 23 15:52:44 2010 +0100
@@ -0,0 +1,21 @@
+class AddProjectsTrackersUniqueIndex < ActiveRecord::Migration
+  def self.up
+    remove_duplicates
+    add_index :projects_trackers, [:project_id, :tracker_id], :name => :projects_trackers_unique, :unique => true
+  end
+
+  def self.down
+    remove_index :projects_trackers, :name => :projects_trackers_unique
+  end
+
+  # Removes duplicates in projects_trackers table
+  def self.remove_duplicates
+    Project.find(:all).each do |project|
+      ids = project.trackers.collect(&:id)
+      unless ids == ids.uniq
+        project.trackers.clear
+        project.tracker_ids = ids.uniq
+      end
+    end
+  end
+end