
* We want to identify a user that has triggered a testrun. Previously (in regular operation), only submission author who were regular users were able to start a testrun. Now, we want to prepare a future where submission authors are programming groups. Still, a testrun is triggered by an individual user and not a group. * Further, this commit fixes some missing foreign key constrains.
23 lines
870 B
Ruby
23 lines
870 B
Ruby
# frozen_string_literal: true
|
|
|
|
class AddUserToTestrun < ActiveRecord::Migration[7.0]
|
|
def change
|
|
add_reference :testruns, :user, polymorphic: true, index: true
|
|
|
|
up_only do
|
|
# Since we do not have programming groups, we can assume that the user who triggered a testrun is the same as the author of the corresponding submission.
|
|
# For programming groups, this assumption is not valid (the author of a submission would the group, whereas an individual user would trigger the testrun).
|
|
execute <<~SQL.squish
|
|
UPDATE testruns
|
|
SET user_id = submissions.contributor_id,
|
|
user_type = submissions.contributor_type
|
|
FROM submissions
|
|
WHERE submissions.id = testruns.submission_id;
|
|
SQL
|
|
end
|
|
|
|
change_column_null :testruns, :user_id, false
|
|
change_column_null :testruns, :user_type, false
|
|
end
|
|
end
|