diff --git a/db/migration/V0080__Backfill_CUNY_school_email_aliases.SQL b/db/migration/V0080__Backfill_CUNY_school_email_aliases.SQL new file mode 100644 index 000000000..b7245bd4c --- /dev/null +++ b/db/migration/V0080__Backfill_CUNY_school_email_aliases.SQL @@ -0,0 +1,23 @@ +DO $$ +BEGIN + CASE current_database() + WHEN 'codebloom-prod', 'codebloom-stg' THEN + ALTER TABLE "User" + DROP CONSTRAINT "ck_user_createdAt_not_null"; + + UPDATE "User" u + SET "schoolEmail" = split_part(u."schoolEmail", '@', 1) || '@' || domains.new_domain + FROM (VALUES + ('myhunter.cuny.edu', 'stu-mail.hunter.cuny.edu'), + ('baruchmail.cuny.edu', 'stu-mail.baruch.cuny.edu'), + ('citymail.cuny.edu', 'stu-mail.ccny.cuny.edu'), + ('stu.bmcc.cuny.edu', 'stu-mail.bmcc.cuny.edu') + ) AS domains(old_domain, new_domain) + WHERE lower(substring(u."schoolEmail" FROM '@(.*)$')) = domains.old_domain; + + ALTER TABLE "User" + ADD CONSTRAINT "ck_user_createdAt_not_null" CHECK ("createdAt" IS NOT NULL) NOT VALID; + ELSE + RAISE NOTICE 'Skipping prod/staging only backfill: Current database is %', current_database(); + END CASE; +END $$;