diff --git a/db/post_migrate/20240401074304_init_conversion_for_vulnerability_feedback_pipeline_id_bigint.rb b/db/post_migrate/20240401074304_init_conversion_for_vulnerability_feedback_pipeline_id_bigint.rb
new file mode 100644
index 0000000000000000000000000000000000000000..20f746b5acd051976b39bbc1c7b233010f651964
--- /dev/null
+++ b/db/post_migrate/20240401074304_init_conversion_for_vulnerability_feedback_pipeline_id_bigint.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class InitConversionForVulnerabilityFeedbackPipelineIdBigint < Gitlab::Database::Migration[2.2]
+  disable_ddl_transaction!
+  milestone '16.11'
+
+  TABLE = :vulnerability_feedback
+  COLUMN = :pipeline_id
+
+  def up
+    initialize_conversion_of_integer_to_bigint(TABLE, COLUMN)
+  end
+
+  def down
+    revert_initialize_conversion_of_integer_to_bigint(TABLE, COLUMN)
+  end
+end
diff --git a/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb b/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb
new file mode 100644
index 0000000000000000000000000000000000000000..1547e1dea0d1b3a075b1517d57ab67f092227023
--- /dev/null
+++ b/db/post_migrate/20240404084304_backfill_vulnerability_feedback_pipeline_id_bigint.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class BackfillVulnerabilityFeedbackPipelineIdBigint < Gitlab::Database::Migration[2.2]
+  restrict_gitlab_migration gitlab_schema: :gitlab_main
+  milestone '16.11'
+
+  TABLE = :vulnerability_feedback
+  COLUMN = :pipeline_id
+
+  def up
+    backfill_conversion_of_integer_to_bigint(TABLE, COLUMN)
+  end
+
+  def down
+    revert_backfill_conversion_of_integer_to_bigint(TABLE, COLUMN)
+  end
+end
diff --git a/db/schema_migrations/20240401074304 b/db/schema_migrations/20240401074304
new file mode 100644
index 0000000000000000000000000000000000000000..580a7798fa93e6d08fefd95dd5dc84435bd3bf14
--- /dev/null
+++ b/db/schema_migrations/20240401074304
@@ -0,0 +1 @@
+c322765311ff994cbd102fe6cf005341a67ab1ff3502cd21f5597fab3ceba29d
\ No newline at end of file
diff --git a/db/schema_migrations/20240404084304 b/db/schema_migrations/20240404084304
new file mode 100644
index 0000000000000000000000000000000000000000..fb49d2f80c4151b20ec54a8bd6ee80eaa0d4d815
--- /dev/null
+++ b/db/schema_migrations/20240404084304
@@ -0,0 +1 @@
+c613226d8f2a25f7a1fe6cc9bdee229c8d858059c75387f3c915d3c34fee6dbf
\ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index fdde49d90db1a7f6f5a98852777baa47e13dd30d..895c3df52d56e2022a0beebe85076e94d4fce5c3 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -659,6 +659,15 @@ BEGIN
 END;
 $$;
 
+CREATE FUNCTION trigger_2428b5519042() RETURNS trigger
+    LANGUAGE plpgsql
+    AS $$
+BEGIN
+  NEW."pipeline_id_convert_to_bigint" := NEW."pipeline_id";
+  RETURN NEW;
+END;
+$$;
+
 CREATE FUNCTION trigger_b2d852e1e2cb() RETURNS trigger
     LANGUAGE plpgsql
     AS $$
@@ -17313,7 +17322,8 @@ CREATE TABLE vulnerability_feedback (
     comment_timestamp timestamp with time zone,
     finding_uuid uuid,
     dismissal_reason smallint,
-    migrated_to_state_transition boolean DEFAULT false
+    migrated_to_state_transition boolean DEFAULT false,
+    pipeline_id_convert_to_bigint bigint
 );
 
 CREATE SEQUENCE vulnerability_feedback_id_seq
@@ -29579,6 +29589,8 @@ CREATE TRIGGER tags_loose_fk_trigger AFTER DELETE ON tags REFERENCING OLD TABLE
 
 CREATE TRIGGER trigger_10ee1357e825 BEFORE INSERT OR UPDATE ON p_ci_builds FOR EACH ROW EXECUTE FUNCTION trigger_10ee1357e825();
 
+CREATE TRIGGER trigger_2428b5519042 BEFORE INSERT OR UPDATE ON vulnerability_feedback FOR EACH ROW EXECUTE FUNCTION trigger_2428b5519042();
+
 CREATE TRIGGER trigger_b2d852e1e2cb BEFORE INSERT OR UPDATE ON ci_pipelines FOR EACH ROW EXECUTE FUNCTION trigger_b2d852e1e2cb();
 
 CREATE TRIGGER trigger_catalog_resource_sync_event_on_project_update AFTER UPDATE ON projects FOR EACH ROW WHEN ((((old.name)::text IS DISTINCT FROM (new.name)::text) OR (old.description IS DISTINCT FROM new.description) OR (old.visibility_level IS DISTINCT FROM new.visibility_level))) EXECUTE FUNCTION insert_catalog_resource_sync_event();
diff --git a/ee/app/models/vulnerabilities/feedback.rb b/ee/app/models/vulnerabilities/feedback.rb
index edd37d78ff9a5ba77518ef7711afed6c585412ff..c806a4a6148a3f6566c1ce66592f3e91945661c3 100644
--- a/ee/app/models/vulnerabilities/feedback.rb
+++ b/ee/app/models/vulnerabilities/feedback.rb
@@ -3,6 +3,10 @@
 module Vulnerabilities
   class Feedback < ApplicationRecord
     include EachBatch
+    include IgnorableColumns
+
+    ignore_columns :pipeline_id_convert_to_bigint, remove_with: '17.1', remove_after: '2024-06-14'
+
     self.table_name = 'vulnerability_feedback'
 
     paginates_per 50