diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index b6a1e1d..30e2648 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -13,6 +13,7 @@ from django.core.management.base import BaseCommand, CommandError
 from django.core.management.color import no_style
 from django.db import (connections, router, transaction, DEFAULT_DB_ALIAS,
       IntegrityError, DatabaseError)
+from django.db.migrations.loader import MigrationLoader
 from django.utils import lru_cache
 from django.utils.encoding import force_text
 from django.utils.functional import cached_property
@@ -235,9 +236,13 @@ class Command(BaseCommand):
         for app_config in apps.get_app_configs():
             if self.app_label and app_config.label != self.app_label:
                 continue
-            app_dir = os.path.join(app_config.path, 'fixtures')
-            if os.path.isdir(app_dir):
-                dirs.append(app_dir)
+
+            # Don't install migrated Apps
+            loader = MigrationLoader(connections[self.using])
+            if app_config.label not in loader.migrated_apps:
+                app_dir = os.path.join(app_config.path, 'fixtures')
+                if os.path.isdir(app_dir):
+                    dirs.append(app_dir)
         dirs.extend(list(settings.FIXTURE_DIRS))
         dirs.append('')
         dirs = [upath(os.path.abspath(os.path.realpath(d))) for d in dirs]
