Mercurial > hg > soundsoftware-site
annotate db/migrate/.svn/text-base/20090312194159_add_projects_trackers_unique_index.rb.svn-base @ 663:3c49c63173ef cannam_integration
Merge from branch "cannam"
| author | Chris Cannam |
|---|---|
| date | Fri, 09 Sep 2011 16:35:12 +0100 |
| parents | 513646585e45 |
| children |
| 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 |
