diff options
| author | Markus Holtermann <info@markusholtermann.eu> | 2015-09-12 10:24:41 +1000 |
|---|---|---|
| committer | Markus Holtermann <info@markusholtermann.eu> | 2015-09-12 10:38:15 +1000 |
| commit | f45ee1974696c8fc17ccfe12ef9e4188e29543a2 (patch) | |
| tree | 40ca967c55a7d161e86bdf4222b180af45d06a0a | |
| parent | a3c01b0dd8060f00a5ffd2589a776b4f618af6d9 (diff) | |
Refs #24919 -- Raised more helpful error message for disabled migrations
| -rw-r--r-- | django/db/migrations/writer.py | 7 | ||||
| -rw-r--r-- | tests/migrations/test_commands.py | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/django/db/migrations/writer.py b/django/db/migrations/writer.py index 5d24fc4628..aa9f393e4b 100644 --- a/django/db/migrations/writer.py +++ b/django/db/migrations/writer.py @@ -241,6 +241,13 @@ class MigrationWriter(object): def basedir(self): migrations_package_name = MigrationLoader.migrations_module(self.migration.app_label) + if migrations_package_name is None: + raise ValueError( + "Django can't create migrations for app '%s' because " + "migrations have been disabled via the MIGRATION_MODULES " + "setting." % self.migration.app_label + ) + # See if we can import the migrations module directly try: migrations_module = import_module(migrations_package_name) diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py index 96206806ac..c0f71a8015 100644 --- a/tests/migrations/test_commands.py +++ b/tests/migrations/test_commands.py @@ -593,6 +593,19 @@ class MakeMigrationsTests(MigrationTestBase): self.assertIn('dependencies=[\n]', content) self.assertIn('operations=[\n]', content) + @override_settings(MIGRATION_MODULES={"migrations": None}) + def test_makemigrations_disabled_migrations_for_app(self): + """ + makemigrations raises a nice error when migrations are disabled for an + app. + """ + msg = ( + "Django can't create migrations for app 'migrations' because migrations " + "have been disabled via the MIGRATION_MODULES setting." + ) + with self.assertRaisesMessage(ValueError, msg): + call_command("makemigrations", "migrations", empty=True, verbosity=0) + def test_makemigrations_no_changes_no_apps(self): """ Makes sure that makemigrations exits when there are no changes and no apps are specified. |
