Add script to migrate duplicated study groups
This commit is contained in:

committed by
Sebastian Serth

parent
ac3dc8d30f
commit
5e90a93f9d
43
db/scripts/migrate_study_group.sql
Normal file
43
db/scripts/migrate_study_group.sql
Normal file
@ -0,0 +1,43 @@
|
||||
CREATE OR REPLACE FUNCTION migrate_study_group(target_study_group int, duplicated_study_group int)
|
||||
RETURNS VOID
|
||||
LANGUAGE plpgsql
|
||||
AS
|
||||
$$
|
||||
DECLARE
|
||||
|
||||
BEGIN
|
||||
IF target_study_group = duplicated_study_group THEN
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
UPDATE community_solution_contributions SET study_group_id = target_study_group WHERE study_group_id = duplicated_study_group;
|
||||
UPDATE remote_evaluation_mappings SET study_group_id = target_study_group WHERE study_group_id = duplicated_study_group;
|
||||
UPDATE authentication_tokens SET study_group_id = target_study_group WHERE study_group_id = duplicated_study_group;
|
||||
UPDATE subscriptions SET study_group_id = target_study_group WHERE study_group_id = duplicated_study_group;
|
||||
UPDATE submissions SET study_group_id = target_study_group WHERE study_group_id = duplicated_study_group;
|
||||
|
||||
-- Preventing duplicated entries in exercises_proxy_exercises
|
||||
-- The same proxy exercise should not have two entries for the same exercise it proxies.
|
||||
DELETE
|
||||
FROM study_group_memberships
|
||||
WHERE study_group_id = duplicated_study_group
|
||||
AND id IN (SELECT duplicated.id
|
||||
FROM study_group_memberships AS target,
|
||||
study_group_memberships AS duplicated
|
||||
WHERE target.study_group_id = target_study_group
|
||||
AND duplicated.study_group_id = duplicated_study_group
|
||||
AND target.user_id = duplicated.user_id
|
||||
AND target.user_type = duplicated.user_type);
|
||||
UPDATE study_group_memberships SET study_group_id = target_study_group where study_group_id = duplicated_study_group;
|
||||
|
||||
DELETE FROM study_groups WHERE id = duplicated_study_group;
|
||||
END;
|
||||
$$;
|
||||
|
||||
/* Execute migration
|
||||
do $$
|
||||
begin
|
||||
perform migrate_study_group(target_study_group := 237, duplicated_study_group := 695);
|
||||
end
|
||||
$$;
|
||||
*/
|
Reference in New Issue
Block a user