diff --git a/db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb b/db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb new file mode 100644 index 0000000000000000000000000000000000000000..3df182db1561558d59accee531bdbfa6886a2e63 --- /dev/null +++ b/db/post_migrate/20231224083824_remove_last_edited_by_id_column_from_vulnerabilities.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class RemoveLastEditedByIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + + milestone '16.8' + + def up + with_lock_retries do + remove_column :vulnerabilities, :last_edited_by_id + end + end + + def down + add_column :vulnerabilities, :last_edited_by_id, :bigint unless column_exists?(:vulnerabilities, :last_edited_by_id) + + # Add back index and constraint that were dropped in `up` + add_concurrent_index(:vulnerabilities, :last_edited_by_id) + add_concurrent_foreign_key(:vulnerabilities, :users, column: :last_edited_by_id, on_delete: :nullify) + end +end diff --git a/db/schema_migrations/20231224083824 b/db/schema_migrations/20231224083824 new file mode 100644 index 0000000000000000000000000000000000000000..bd514723679625bd63b82ccd93f4f59b582a69e1 --- /dev/null +++ b/db/schema_migrations/20231224083824 @@ -0,0 +1 @@ +d8cfd6b59da7a32b86aedaf1f6780774f7b70bc6a8cf675d91a63c4cc6dd94ea \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index dae7ce151c1bf5e25ebcbe82301efccc36162fa4..3182561d4bfac710341ec2a89353168a32c2b90d 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -24896,7 +24896,6 @@ CREATE TABLE vulnerabilities ( project_id bigint NOT NULL, author_id bigint NOT NULL, updated_by_id bigint, - last_edited_by_id bigint, start_date date, created_at timestamp with time zone NOT NULL, updated_at timestamp with time zone NOT NULL, @@ -35135,8 +35134,6 @@ CREATE INDEX index_vulnerabilities_on_epic_id ON vulnerabilities USING btree (ep CREATE INDEX index_vulnerabilities_on_finding_id ON vulnerabilities USING btree (finding_id); -CREATE INDEX index_vulnerabilities_on_last_edited_by_id ON vulnerabilities USING btree (last_edited_by_id); - CREATE INDEX index_vulnerabilities_on_milestone_id ON vulnerabilities USING btree (milestone_id); CREATE INDEX index_vulnerabilities_on_project_id_and_id ON vulnerabilities USING btree (project_id, id); @@ -37378,9 +37375,6 @@ ALTER TABLE ONLY project_pages_metadata ALTER TABLE ONLY group_deletion_schedules ADD CONSTRAINT fk_11e3ebfcdd FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE; -ALTER TABLE ONLY vulnerabilities - ADD CONSTRAINT fk_1302949740 FOREIGN KEY (last_edited_by_id) REFERENCES users(id) ON DELETE SET NULL; - ALTER TABLE ONLY vulnerabilities ADD CONSTRAINT fk_131d289c65 FOREIGN KEY (milestone_id) REFERENCES milestones(id) ON DELETE SET NULL; diff --git a/ee/spec/models/ee/vulnerability_spec.rb b/ee/spec/models/ee/vulnerability_spec.rb index 6330ba9e7a5f47662200410830758a80323a2d36..162d0422ed63e1277d15e0c5b06e0d65881c689f 100644 --- a/ee/spec/models/ee/vulnerability_spec.rb +++ b/ee/spec/models/ee/vulnerability_spec.rb @@ -29,7 +29,7 @@ let_it_be(:vulnerability) { create(:vulnerability, :sast, :confirmed, :low, :with_state_transition, project: project) } let_it_be(:finding) { create(:vulnerabilities_finding, vulnerability: vulnerability) } - it { is_expected.to have_locked_schema('cb13c5ef1e2f527aa7af69b2d8613551b6ec048628f4c10f65217657454b0bbb').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') } + it { is_expected.to have_locked_schema('af31520c7b44d816a185881ad7ca05728b8da3a3b0c5f55ca00b9c047e6e066f').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') } it_behaves_like 'vulnerability and finding shared examples' do let(:transformer_method) { :itself }