diff --git a/changelogs/unreleased/283938_cascade_delete_inheriting_services.yml b/changelogs/unreleased/283938_cascade_delete_inheriting_services.yml new file mode 100644 index 0000000000000000000000000000000000000000..25989863327386f9504644fbbf7f11fad9d88ed3 --- /dev/null +++ b/changelogs/unreleased/283938_cascade_delete_inheriting_services.yml @@ -0,0 +1,5 @@ +--- +title: Change services.inherit_from_id foreign key to ON DELETE CASCADE +merge_request: 48163 +author: +type: fixed diff --git a/db/migrate/20201119162801_change_services_inherit_from_id_foreign_key.rb b/db/migrate/20201119162801_change_services_inherit_from_id_foreign_key.rb new file mode 100644 index 0000000000000000000000000000000000000000..a7f12fcf7268072a994febe906a9be7c6f6c1f08 --- /dev/null +++ b/db/migrate/20201119162801_change_services_inherit_from_id_foreign_key.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class ChangeServicesInheritFromIdForeignKey < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + add_concurrent_foreign_key :services, :services, column: :inherit_from_id, on_delete: :cascade, name: 'fk_services_inherit_from_id' + remove_foreign_key_if_exists :services, name: 'fk_868a8e7ad6' + end + + def down + remove_foreign_key_if_exists :services, name: 'fk_services_inherit_from_id' + add_concurrent_foreign_key :services, :services, column: :inherit_from_id, on_delete: :nullify, name: 'fk_868a8e7ad6' + end +end diff --git a/db/schema_migrations/20201119162801 b/db/schema_migrations/20201119162801 new file mode 100644 index 0000000000000000000000000000000000000000..b6aa67ad5f660f3cba20902a22d67bb309ecc787 --- /dev/null +++ b/db/schema_migrations/20201119162801 @@ -0,0 +1 @@ +c41f4649540c23d25f0ae26c3754476409b5e77f53b96db65f2c1fd4a6caf087 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 54888195975e4f2bb3ea3f1246aa7956f2140842..d9e7b2ccc15640777027ada57ae134e5e34e2c21 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -23124,9 +23124,6 @@ ALTER TABLE ONLY merge_request_diffs ALTER TABLE ONLY ci_pipelines ADD CONSTRAINT fk_86635dbd80 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE; -ALTER TABLE ONLY services - ADD CONSTRAINT fk_868a8e7ad6 FOREIGN KEY (inherit_from_id) REFERENCES services(id) ON DELETE SET NULL; - ALTER TABLE ONLY geo_event_log ADD CONSTRAINT fk_86c84214ec FOREIGN KEY (repository_renamed_event_id) REFERENCES geo_repository_renamed_events(id) ON DELETE CASCADE; @@ -24792,6 +24789,9 @@ ALTER TABLE ONLY resource_label_events ALTER TABLE ONLY ci_builds_metadata ADD CONSTRAINT fk_rails_ffcf702a02 FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE; +ALTER TABLE ONLY services + ADD CONSTRAINT fk_services_inherit_from_id FOREIGN KEY (inherit_from_id) REFERENCES services(id) ON DELETE CASCADE; + ALTER TABLE ONLY timelogs ADD CONSTRAINT fk_timelogs_issues_issue_id FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE CASCADE;