Reorder triggers in structure.sql
What does this MR do and why?
There is a lot of work going on at the moment to migrate some tables to bigint PKs. These MRs are making pretty simalar changes to structure.sql, the only difference (other than the new columns added) being the generated name for the functions/triggers.
Two examples are
- Step 1: Prepare `ci_build_needs` for bigint con... (!110521 - merged)
- Initialize migration of sent_notifications.id t... (!110587 - merged)
Sometimes when merging, git is managing to merge the changes into structure.sql, but not in the order that pg_dump will export the objects (which is alphabetical, unless there is some dependency between objects).
This MR reorders some objects to match the how pg_dump will export them so that we do not have changes to structure.sql after dump (e.g. after gdk update, or db:migrate), which makes working on the rest of the similar MRs tricky.
How to set up and validate locally
- On
master, after executingbundle exec rails db:migrate, there will be a diff likediff --git a/db/structure.sql b/db/structure.sql index 4d5e58cd0727..cd2f9b4b4129 100644 --- a/db/structure.sql +++ b/db/structure.sql +++ b/db/structure.sql @@ -234,7 +234,7 @@ BEGIN END; $$; -CREATE FUNCTION trigger_7f4fcd5aa322() RETURNS trigger +CREATE FUNCTION trigger_3207b8d0d6f3() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN @@ -243,25 +243,25 @@ BEGIN END; $$; -CREATE FUNCTION trigger_c5a5f48f12b0() RETURNS trigger +CREATE FUNCTION trigger_7f4fcd5aa322() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN - NEW."note_id_convert_to_bigint" := NEW."note_id"; + NEW."id_convert_to_bigint" := NEW."id"; RETURN NEW; END; $$; -CREATE FUNCTION trigger_c7107f30d69d() RETURNS trigger +CREATE FUNCTION trigger_c5a5f48f12b0() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN - NEW."id_convert_to_bigint" := NEW."id"; + NEW."note_id_convert_to_bigint" := NEW."note_id"; RETURN NEW; END; $$; -CREATE FUNCTION trigger_3207b8d0d6f3() RETURNS trigger +CREATE FUNCTION trigger_c7107f30d69d() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN @@ -33517,12 +33517,12 @@ CREATE TRIGGER projects_loose_fk_trigger AFTER DELETE ON projects REFERENCING OL CREATE TRIGGER trigger_1a857e8db6cd BEFORE INSERT OR UPDATE ON vulnerability_occurrences FOR EACH ROW EXECUTE FUNCTION trigger_1a857e8db6cd(); +CREATE TRIGGER trigger_3207b8d0d6f3 BEFORE INSERT OR UPDATE ON ci_build_needs FOR EACH ROW EXECUTE FUNCTION trigger_3207b8d0d6f3(); + CREATE TRIGGER trigger_7f4fcd5aa322 BEFORE INSERT OR UPDATE ON sent_notifications FOR EACH ROW EXECUTE FUNCTION trigger_7f4fcd5aa322(); CREATE TRIGGER trigger_c5a5f48f12b0 BEFORE INSERT OR UPDATE ON epic_user_mentions FOR EACH ROW EXECUTE FUNCTION trigger_c5a5f48f12b0(); -CREATE TRIGGER trigger_3207b8d0d6f3 BEFORE INSERT OR UPDATE ON ci_build_needs FOR EACH ROW EXECUTE FUNCTION trigger_3207b8d0d6f3(); - CREATE TRIGGER trigger_c7107f30d69d BEFORE INSERT OR UPDATE ON merge_request_metrics FOR EACH ROW EXECUTE FUNCTION trigger_c7107f30d69d(); - On this branch, after executing
bundle exec rails db:migrate, there should be no changes tostructure.sql
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.