Show More
Commit Description:
still upgrading
Commit Description:
still upgrading
References:
File last commit:
Show/Diff file:
Action:
db/migrate/018_add_number_to_submissions.rb
| 32 lines
| 895 B
| text/x-ruby
| RubyLexer
|
|
r35 | class AddNumberToSubmissions < ActiveRecord::Migration | ||
def self.up | ||||
add_column :submissions, :number, :integer | ||||
# add number field for all records | ||||
Submission.reset_column_information | ||||
last_user_id = nil | ||||
last_problem_id = nil | ||||
current_number = 0 | ||||
r666 | Submission.order('user_id, problem_id, submitted_at').each do |submission| | |||
|
r35 | if submission.user_id==last_user_id and submission.problem_id==last_problem_id | ||
current_number += 1 | ||||
else | ||||
current_number = 1 | ||||
end | ||||
submission.number = current_number | ||||
submission.save | ||||
last_user_id = submission.user_id | ||||
last_problem_id = submission.problem_id | ||||
end | ||||
add_index :submissions, [:user_id, :problem_id, :number], :unique => true | ||||
end | ||||
def self.down | ||||
remove_index :submissions, :column => [:user_id, :problem_id, :number] | ||||
remove_column :submissions, :number | ||||
end | ||||
end | ||||