20090312194159_add_projects_trackers_unique_index.rb
21 lines
| 598 B
| text/x-ruby
|
RubyLexer
|
r2512 | 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 | ||||
|
r10691 | Project.all.each do |project| | ||
|
r2512 | ids = project.trackers.collect(&:id) | ||
unless ids == ids.uniq | ||||
project.trackers.clear | ||||
project.tracker_ids = ids.uniq | ||||
end | ||||
end | ||||
end | ||||
end | ||||