diff --git a/db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb b/db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb new file mode 100644 index 0000000000000000000000000000000000000000..5cd41dff0ef433916ef20e23b170dad47c61932e --- /dev/null +++ b/db/post_migrate/20231217053910_remove_due_date_sourcing_milestone_id_column_from_vulnerabilities.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class RemoveDueDateSourcingMilestoneIdColumnFromVulnerabilities < Gitlab::Database::Migration[2.2] + disable_ddl_transaction! + + milestone '16.8' + + def up + with_lock_retries do + remove_column :vulnerabilities, :due_date_sourcing_milestone_id + end + end + + def down + unless column_exists?(:vulnerabilities, :due_date_sourcing_milestone_id) + add_column :vulnerabilities, :due_date_sourcing_milestone_id, :bigint + end + + # Add back index and constraint that were dropped in `up` + add_concurrent_index(:vulnerabilities, :due_date_sourcing_milestone_id) + add_concurrent_foreign_key(:vulnerabilities, :milestones, column: :due_date_sourcing_milestone_id, + on_delete: :nullify) + end +end diff --git a/db/schema_migrations/20231217053910 b/db/schema_migrations/20231217053910 new file mode 100644 index 0000000000000000000000000000000000000000..ce8d6436f44a3c15ef0d11a4a9d25a2858644037 --- /dev/null +++ b/db/schema_migrations/20231217053910 @@ -0,0 +1 @@ +bf5f9ca0584e043c39ca57a9664241900c35cda921c94e0df2728b435137a066 \ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index d7226ae98c3b475597ec8e3bd9f5d67b84289348..cf1a175ae95dc39e02ce450a95aa843538b04ec1 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -24901,7 +24901,6 @@ CREATE TABLE vulnerabilities ( description text, description_html text, start_date_sourcing_milestone_id bigint, - due_date_sourcing_milestone_id bigint, state smallint DEFAULT 1 NOT NULL, severity smallint NOT NULL, severity_overridden boolean DEFAULT false, @@ -35089,8 +35088,6 @@ CREATE INDEX index_vulnerabilities_on_detected_at_and_id ON vulnerabilities USIN CREATE INDEX index_vulnerabilities_on_dismissed_by_id ON vulnerabilities USING btree (dismissed_by_id); -CREATE INDEX index_vulnerabilities_on_due_date_sourcing_milestone_id ON vulnerabilities USING btree (due_date_sourcing_milestone_id); - CREATE INDEX index_vulnerabilities_on_epic_id ON vulnerabilities USING btree (epic_id); CREATE INDEX index_vulnerabilities_on_finding_id ON vulnerabilities USING btree (finding_id); @@ -37791,9 +37788,6 @@ ALTER TABLE ONLY catalog_resource_versions ALTER TABLE ONLY issue_customer_relations_contacts ADD CONSTRAINT fk_7b92f835bb FOREIGN KEY (contact_id) REFERENCES customer_relations_contacts(id) ON DELETE CASCADE; -ALTER TABLE ONLY vulnerabilities - ADD CONSTRAINT fk_7c5bb22a22 FOREIGN KEY (due_date_sourcing_milestone_id) REFERENCES milestones(id) ON DELETE SET NULL; - ALTER TABLE ONLY ssh_signatures ADD CONSTRAINT fk_7d2f93996c FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE; diff --git a/ee/spec/models/ee/vulnerability_spec.rb b/ee/spec/models/ee/vulnerability_spec.rb index a985c46b5935e104e4c34a955dd2971d3113e998..02359eb4457fe58d8b423c516c7643f01185ee75 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('acd1e63fcaaeba6f545d3420da5f3407914227b57ff584bb98b5c3f2e0411877').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') } + it { is_expected.to have_locked_schema('f8dc84021fa4394728e9dbb25cfa87daf143ff13d49545c082dfceb65bec65d8').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') } it_behaves_like 'vulnerability and finding shared examples' do let(:transformer_method) { :itself }