diff --git a/db/post_migrate/20221121181627_drop_index_on_vulnerabilities_state_case_id_desc.rb b/db/post_migrate/20221121181627_drop_index_on_vulnerabilities_state_case_id_desc.rb
new file mode 100644
index 0000000000000000000000000000000000000000..712343bc7b0c8b1a47b9f0469f1331dead4d919d
--- /dev/null
+++ b/db/post_migrate/20221121181627_drop_index_on_vulnerabilities_state_case_id_desc.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class DropIndexOnVulnerabilitiesStateCaseIdDesc < Gitlab::Database::Migration[2.0]
+  INDEX_NAME = "index_vulnerabilities_on_state_case_id_desc"
+  disable_ddl_transaction!
+
+  def up
+    remove_concurrent_index_by_name(
+      :vulnerabilities,
+      INDEX_NAME
+    )
+  end
+
+  def down
+    execute <<~SQL
+      CREATE INDEX CONCURRENTLY index_vulnerabilities_on_state_case_id_desc ON vulnerabilities
+      USING btree (array_position(ARRAY[(1)::smallint, (4)::smallint, (3)::smallint, (2)::smallint], state) DESC, id DESC);
+    SQL
+  end
+end
diff --git a/db/schema_migrations/20221121181627 b/db/schema_migrations/20221121181627
new file mode 100644
index 0000000000000000000000000000000000000000..2be29d4fcec29abe206304425a98d8b2c4943757
--- /dev/null
+++ b/db/schema_migrations/20221121181627
@@ -0,0 +1 @@
+91c8b8327b502611b47400f229204f3093b87f6dd555c7471a2a827c0ee2d7fe
\ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 0e8904c919ecf74b6091ef987f4fb424992b1a84..3331998bdbfb47a4a755e1a86efc8ff60a584e56 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -31149,8 +31149,6 @@ CREATE INDEX index_vulnerabilities_on_resolved_by_id ON vulnerabilities USING bt
 
 CREATE INDEX index_vulnerabilities_on_start_date_sourcing_milestone_id ON vulnerabilities USING btree (start_date_sourcing_milestone_id);
 
-CREATE INDEX index_vulnerabilities_on_state_case_id_desc ON vulnerabilities USING btree (array_position(ARRAY[(1)::smallint, (4)::smallint, (3)::smallint, (2)::smallint], state) DESC, id DESC);
-
 CREATE INDEX index_vulnerabilities_on_updated_by_id ON vulnerabilities USING btree (updated_by_id);
 
 CREATE INDEX index_vulnerabilities_project_id_and_id_on_default_branch ON vulnerabilities USING btree (project_id, id) WHERE (present_on_default_branch IS TRUE);
diff --git a/ee/spec/models/ee/vulnerability_spec.rb b/ee/spec/models/ee/vulnerability_spec.rb
index 2694c138353820cb90a3fc2764543f692aa97231..25e413983e5f7cd7151990dc6cac2b1c7b53429c 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, project: project) }
   let_it_be(:finding) { create(:vulnerabilities_finding, vulnerability: vulnerability) }
 
-  it { is_expected.to have_locked_schema('9e0c8a8eec7c990209307db76b07c6a3d33a21ab2145de14bbd3237b1d46e5fa').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') }
+  it { is_expected.to have_locked_schema('68d13447d3ba569e33f1511e585a20378d91667434fe8f0709bd6ace626d33f2').reference('https://gitlab.com/gitlab-org/gitlab/-/issues/349315') }
 
   describe 'enums' do
     it { is_expected.to define_enum_for(:state).with_values(state_values) }