diff --git a/db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb b/db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2238c4e34c5f98dcbdc23bb5df45a9248f32f265
--- /dev/null
+++ b/db/post_migrate/20231204042048_finalize_system_note_metadata_bigint_conversion.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class FinalizeSystemNoteMetadataBigintConversion < Gitlab::Database::Migration[2.2]
+  include Gitlab::Database::MigrationHelpers::ConvertToBigint
+
+  disable_ddl_transaction!
+  restrict_gitlab_migration gitlab_schema: :gitlab_main
+
+  milestone '16.7'
+
+  TABLE_NAME = :system_note_metadata
+
+  def up
+    ensure_batched_background_migration_is_finished(
+      job_class_name: 'CopyColumnUsingBackgroundMigrationJob',
+      table_name: TABLE_NAME,
+      column_name: 'id',
+      job_arguments: [['id'], ['id_convert_to_bigint']]
+    )
+  end
+
+  def down
+    # no-op
+  end
+end
diff --git a/db/schema_migrations/20231204042048 b/db/schema_migrations/20231204042048
new file mode 100644
index 0000000000000000000000000000000000000000..6e0e069539c5cbad53facfeccc6b15fe93376ea9
--- /dev/null
+++ b/db/schema_migrations/20231204042048
@@ -0,0 +1 @@
+ca81769223a50ac334a06e150a2454800292a0affa65e3b55f6925c0c1bc7947
\ No newline at end of file