-- Modify "constraint_name" with the system generated constraint name for the concatenated -- key on the grouper_attributes table with columns group_id, field_name, and value. alter table grouper_attributes drop constraint constraint_name; drop index attribute_field_idx; create index attribute_field_value_idx on grouper_attributes (field_name, value); drop index composite_factor_idx; create index composite_left_factor_idx on grouper_composites (left_factor); create index composite_right_factor_idx on grouper_composites (right_factor); drop index membership_depth_idx; create index membership_member_via_idx on grouper_memberships (member_id, via_id); create index session_member_idx on grouper_sessions (member_id); drop index membership_via_idx; create index subjectattribute_value_idx on SubjectAttribute (value); drop index subject_idx; drop index subjectattribute_id_idx; drop index subjectattribute_key_idx; alter table grouper_attributes modify(group_id not null); alter table grouper_memberships modify(depth not null); alter table grouper_memberships modify(membership_uuid not null); alter table grouper_memberships modify(create_time not null); alter table grouper_sessions modify(session_uuid not null); alter table grouper_attributes add (unique (group_id, field_name)); alter table grouper_composites add (unique (uuid)); alter table grouper_fields add (unique (field_uuid)); alter table grouper_fields add (unique (name, type)); alter table grouper_groups add (unique (uuid)); alter table grouper_members add (unique (member_uuid)); alter table grouper_memberships add (unique (membership_uuid)); alter table grouper_sessions add (unique (session_uuid)); alter table grouper_stems add (unique (uuid)); alter table grouper_types add (unique (type_uuid)); ALTER TABLE grouper_attributes ADD CONSTRAINT fk_attributes_group_id FOREIGN KEY (group_id) REFERENCES grouper_groups (uuid); ALTER TABLE grouper_attributes ADD CONSTRAINT fk_attributes_field_name FOREIGN KEY (field_name) REFERENCES grouper_fields (name); ALTER TABLE grouper_composites ADD CONSTRAINT fk_composites_owner FOREIGN KEY (owner) REFERENCES grouper_groups (uuid); ALTER TABLE grouper_composites ADD CONSTRAINT fk_composites_left_factor FOREIGN KEY (left_factor) REFERENCES grouper_groups (uuid); ALTER TABLE grouper_composites ADD CONSTRAINT fk_composites_right_factor FOREIGN KEY (right_factor) REFERENCES grouper_groups (uuid); ALTER TABLE grouper_composites ADD CONSTRAINT fk_composites_creator_id FOREIGN KEY (creator_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_fields ADD CONSTRAINT fk_fields_grouptype_uuid FOREIGN KEY (grouptype_uuid) REFERENCES grouper_types (type_uuid); ALTER TABLE grouper_groups ADD CONSTRAINT fk_groups_parent_stem FOREIGN KEY (parent_stem) REFERENCES grouper_stems (uuid); ALTER TABLE grouper_groups ADD CONSTRAINT fk_groups_creator_id FOREIGN KEY (creator_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_groups ADD CONSTRAINT fk_groups_modifier_id FOREIGN KEY (modifier_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_groups_types ADD CONSTRAINT fk_groups_types_group_uuid FOREIGN KEY (group_uuid) REFERENCES grouper_groups (uuid); ALTER TABLE grouper_groups_types ADD CONSTRAINT fk_groups_types_type_uuid FOREIGN KEY (type_uuid) REFERENCES grouper_types (type_uuid); ALTER TABLE grouper_memberships ADD CONSTRAINT fk_memberships_member_id FOREIGN KEY (member_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_memberships ADD CONSTRAINT fk_memberships_list_name_type FOREIGN KEY (list_name, list_type) REFERENCES grouper_fields (name, type); ALTER TABLE grouper_memberships ADD CONSTRAINT fk_memberships_parent FOREIGN KEY (parent_membership) REFERENCES grouper_memberships (membership_uuid); ALTER TABLE grouper_memberships ADD CONSTRAINT fk_memberships_creator_id FOREIGN KEY (creator_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_sessions ADD CONSTRAINT fk_sessions_member_id FOREIGN KEY (member_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_stems ADD CONSTRAINT fk_stems_parent_stem FOREIGN KEY (parent_stem) REFERENCES grouper_stems (uuid); ALTER TABLE grouper_stems ADD CONSTRAINT fk_stems_creator_id FOREIGN KEY (creator_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_stems ADD CONSTRAINT fk_stems_modifier_id FOREIGN KEY (modifier_id) REFERENCES grouper_members (member_uuid); ALTER TABLE grouper_types ADD CONSTRAINT fk_types_creator_uuid FOREIGN KEY (creator_uuid) REFERENCES grouper_members (member_uuid); ALTER TABLE SubjectAttribute ADD CONSTRAINT fk_subjectattr_subjectid FOREIGN KEY (subjectId) REFERENCES Subject (subjectId);