···11+DELETE FROM "activity" a
22+USING "activity" b
33+WHERE a.ctid < b.ctid
44+ AND a.task_id = b.task_id
55+ AND a.external_source = b.external_source
66+ AND a.external_url = b.external_url
77+ AND a.external_url IS NOT NULL;
88+99+DELETE FROM "label" a
1010+USING "label" b
1111+WHERE a.ctid < b.ctid
1212+ AND a.task_id = b.task_id
1313+ AND a.name = b.name
1414+ AND a.task_id IS NOT NULL;
1515+1616+DELETE FROM "label" a
1717+USING "label" b
1818+WHERE a.ctid < b.ctid
1919+ AND a.workspace_id = b.workspace_id
2020+ AND a.name = b.name
2121+ AND a.task_id IS NULL
2222+ AND b.task_id IS NULL
2323+ AND a.workspace_id IS NOT NULL;
2424+2525+ALTER TABLE "activity"
2626+ ADD CONSTRAINT "activity_task_external_source_external_url_unique"
2727+ UNIQUE ("task_id", "external_source", "external_url");
2828+2929+ALTER TABLE "label"
3030+ ADD CONSTRAINT "label_task_name_unique"
3131+ UNIQUE ("task_id", "name");
3232+3333+CREATE UNIQUE INDEX "label_workspace_name_unique"
3434+ ON "label" ("workspace_id", "name")
3535+ WHERE "task_id" IS NULL;