diff --git a/django/db/migrations/loader.py b/django/db/migrations/loader.py index 6ad6959787..f3617764ef 100644 --- a/django/db/migrations/loader.py +++ b/django/db/migrations/loader.py @@ -63,6 +63,7 @@ class MigrationLoader(object): if "No module named" in str(e) and "migrations" in str(e): self.unmigrated_apps.add(app_label) continue + raise self.migrated_apps.add(app_label) directory = os.path.dirname(module.__file__) # Scan for .py[c|o] files diff --git a/tests/migrations/faulty_migrations/import_error/__init__.py b/tests/migrations/faulty_migrations/import_error/__init__.py new file mode 100644 index 0000000000..616c209dad --- /dev/null +++ b/tests/migrations/faulty_migrations/import_error/__init__.py @@ -0,0 +1 @@ +import fake_python_module diff --git a/tests/migrations/test_loader.py b/tests/migrations/test_loader.py index b9ad9726ae..6810089603 100644 --- a/tests/migrations/test_loader.py +++ b/tests/migrations/test_loader.py @@ -77,3 +77,10 @@ class LoaderTests(TestCase): migration_loader.get_migration_by_prefix("migrations", "0") with self.assertRaises(KeyError): migration_loader.get_migration_by_prefix("migrations", "blarg") + + def test_load_import_error(self): + migration_loader = MigrationLoader(connection) + + with override_settings(MIGRATION_MODULES={"migrations": "migrations.faulty_migrations.import_error"}): + with self.assertRaises(ImportError): + migration_loader.load_disk()