Fixed #34051 -- Made makemigrations --check exit before making migrations.
This commit is contained in:
parent
5d36a8266c
commit
80d38de52b
|
@ -70,7 +70,10 @@ class Command(BaseCommand):
|
||||||
"--check",
|
"--check",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
dest="check_changes",
|
dest="check_changes",
|
||||||
help="Exit with a non-zero status if model changes are missing migrations.",
|
help=(
|
||||||
|
"Exit with a non-zero status if model changes are missing migrations "
|
||||||
|
"and don't actually write them."
|
||||||
|
),
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--scriptable",
|
"--scriptable",
|
||||||
|
@ -248,12 +251,12 @@ class Command(BaseCommand):
|
||||||
else:
|
else:
|
||||||
self.log("No changes detected")
|
self.log("No changes detected")
|
||||||
else:
|
else:
|
||||||
|
if check_changes:
|
||||||
|
sys.exit(1)
|
||||||
if self.update:
|
if self.update:
|
||||||
self.write_to_last_migration_files(changes)
|
self.write_to_last_migration_files(changes)
|
||||||
else:
|
else:
|
||||||
self.write_migration_files(changes)
|
self.write_migration_files(changes)
|
||||||
if check_changes:
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
def write_to_last_migration_files(self, changes):
|
def write_to_last_migration_files(self, changes):
|
||||||
loader = MigrationLoader(connections[DEFAULT_DB_ALIAS])
|
loader = MigrationLoader(connections[DEFAULT_DB_ALIAS])
|
||||||
|
|
|
@ -825,6 +825,11 @@ Generate migration files without Django version and timestamp header.
|
||||||
Makes ``makemigrations`` exit with a non-zero status when model changes without
|
Makes ``makemigrations`` exit with a non-zero status when model changes without
|
||||||
migrations are detected.
|
migrations are detected.
|
||||||
|
|
||||||
|
.. versionchanged:: 4.2
|
||||||
|
|
||||||
|
In older versions, the missing migrations were also created when using the
|
||||||
|
``--check`` option.
|
||||||
|
|
||||||
.. django-admin-option:: --scriptable
|
.. django-admin-option:: --scriptable
|
||||||
|
|
||||||
.. versionadded:: 4.1
|
.. versionadded:: 4.1
|
||||||
|
|
|
@ -322,6 +322,9 @@ Miscellaneous
|
||||||
* The ``autofocus`` HTML attribute in the admin search box is removed as it can
|
* The ``autofocus`` HTML attribute in the admin search box is removed as it can
|
||||||
be confusing for screen readers.
|
be confusing for screen readers.
|
||||||
|
|
||||||
|
* The :option:`makemigrations --check` option no longer creates missing
|
||||||
|
migration files.
|
||||||
|
|
||||||
.. _deprecated-features-4.2:
|
.. _deprecated-features-4.2:
|
||||||
|
|
||||||
Features deprecated in 4.2
|
Features deprecated in 4.2
|
||||||
|
|
|
@ -2391,9 +2391,10 @@ class MakeMigrationsTests(MigrationTestBase):
|
||||||
makemigrations --check should exit with a non-zero status when
|
makemigrations --check should exit with a non-zero status when
|
||||||
there are changes to an app requiring migrations.
|
there are changes to an app requiring migrations.
|
||||||
"""
|
"""
|
||||||
with self.temporary_migration_module():
|
with self.temporary_migration_module() as tmpdir:
|
||||||
with self.assertRaises(SystemExit):
|
with self.assertRaises(SystemExit):
|
||||||
call_command("makemigrations", "--check", "migrations", verbosity=0)
|
call_command("makemigrations", "--check", "migrations", verbosity=0)
|
||||||
|
self.assertFalse(os.path.exists(tmpdir))
|
||||||
|
|
||||||
with self.temporary_migration_module(
|
with self.temporary_migration_module(
|
||||||
module="migrations.test_migrations_no_changes"
|
module="migrations.test_migrations_no_changes"
|
||||||
|
|
Loading…
Reference in New Issue