diff --git a/ietf/doc/migrations/0016_move_dochistory.py b/ietf/doc/migrations/0016_move_dochistory.py
new file mode 100644
index 000000000..0dd80a953
--- /dev/null
+++ b/ietf/doc/migrations/0016_move_dochistory.py
@@ -0,0 +1,37 @@
+# Generated by Django 4.2.5 on 2023-09-11 17:52
+
+from django.db import migrations
+
+from django.db.models import Subquery, OuterRef, F
+
+
+def forward(apps, schema_editor):
+    DocHistory = apps.get_model("doc", "DocHistory")
+    RelatedDocument = apps.get_model("doc", "RelatedDocument")
+    DocHistory.objects.filter(type_id="draft", doc__type_id="rfc").update(type_id="rfc")
+    DocHistory.objects.filter(
+        type_id="draft", doc__type_id="draft", name__startswith="rfc"
+    ).annotate(
+        rfc_id=Subquery(
+            RelatedDocument.objects.filter(
+                source_id=OuterRef("doc_id"), relationship_id="became_rfc"
+            ).values_list("target_id", flat=True)[:1]
+        )
+    ).update(
+        doc_id = F("rfc_id"),
+        type_id = "rfc"
+    )
+    assert not DocHistory.objects.filter(name__startswith="rfc", type_id="draft").exists()
+
+
+def reverse(apps, schema_editor):
+    # there is no going back
+    raise NotImplementedError
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("doc", "0015_delete_docalias"),
+    ]
+
+    operations = [migrations.RunPython(forward, reverse)]