diff --git a/src/documents/migrations/0014_auto_20180502_0852.py b/src/documents/migrations/0014_auto_20180502_0852.py
index bad892dee92e0b755e699373da473b8d5e8e66bb..27cc54c662f966b0e3abe280f9cb783dbab649f6 100644
--- a/src/documents/migrations/0014_auto_20180502_0852.py
+++ b/src/documents/migrations/0014_auto_20180502_0852.py
@@ -10,8 +10,7 @@ def transcription_to_document(apps, schema_editor):
     DocumentLink = apps.get_model('documents', 'DocumentLink')
     nb = Transcription.objects.count()
     last = 0
-    links = []
-    for i, ts in enumerate(Transcription.objects.all()):
+    for i, ts in enumerate(Transcription.objects.all().prefetch_related('zone__image')):
         percent = int(100.0 * (i + 1) / nb)
         if percent % 5 == 0 and last != percent:
             print(' > {0: >3}% => {1: >6} / {2}'.format(percent, i, nb))
@@ -20,11 +19,10 @@ def transcription_to_document(apps, schema_editor):
         doc.zones.add(ts.zone)
         ts.document_ptr_id = doc.id
         ts.save()
-        max_order_dl = DocumentLink.objects.filter(parent_id=ts.zone.document.id).order_by('-order').first()
+        parent_id = Document.objects.filter(type=DocumentType.Page, zones__image__id=ts.zone.image.id).only('id').get().id
+        max_order_dl = DocumentLink.objects.filter(parent_id=parent_id).order_by('-order').only('order').first()
         order = 0 if max_order_dl is None else max_order_dl.order + 1
-        links.append(DocumentLink(parent_id=ts.zone.document.id, child_id=doc.id, order=order))
-    print('Saving document links...')
-    DocumentLink.objects.bulk_create(links)
+        DocumentLink.objects.create(parent_id=parent_id, child_id=doc.id, order=order)
 
 
 class Migration(migrations.Migration):