Fixed #23090: Document and enforce not double-squashing migrations
This commit is contained in:
parent
a338e07735
commit
8ebd6d35d7
|
@ -65,6 +65,8 @@ class Command(BaseCommand):
|
||||||
# Load the operations from all those migrations and concat together
|
# Load the operations from all those migrations and concat together
|
||||||
operations = []
|
operations = []
|
||||||
for smigration in migrations_to_squash:
|
for smigration in migrations_to_squash:
|
||||||
|
if smigration.replaces:
|
||||||
|
raise CommandError("You cannot squash squashed migrations! Please transition it to a normal migration first: https://docs.djangoproject.com/en/1.7/topics/migrations/#squashing-migrations")
|
||||||
operations.extend(smigration.operations)
|
operations.extend(smigration.operations)
|
||||||
|
|
||||||
if self.verbosity > 0:
|
if self.verbosity > 0:
|
||||||
|
|
|
@ -487,6 +487,23 @@ please `file a bug report <https://code.djangoproject.com/newticket>`_ either
|
||||||
way detailing the models and their relationships so we can improve the
|
way detailing the models and their relationships so we can improve the
|
||||||
optimizer to handle your case.
|
optimizer to handle your case.
|
||||||
|
|
||||||
|
Once you've squashed your migration, you should then commit it alongside the
|
||||||
|
migrations it replaces and distribute this change to all running instances
|
||||||
|
of your application, making sure that they run ``migrate`` to store the change
|
||||||
|
in their database.
|
||||||
|
|
||||||
|
After this has been done, you must then transition the squashed migration to
|
||||||
|
a normal initial migration, by:
|
||||||
|
|
||||||
|
- Deleting all the migration files it replaces
|
||||||
|
- Removing the ``replaces`` argument in the ``Migration`` class of the
|
||||||
|
squashed migration (this is how Django tells that it is a squashed migration)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Once you've squashed a migration, you should not then re-squash that squashed
|
||||||
|
migration until you have fully transitioned it to a normal migration.
|
||||||
|
|
||||||
|
|
||||||
.. _migration-serializing:
|
.. _migration-serializing:
|
||||||
|
|
||||||
Serializing values
|
Serializing values
|
||||||
|
|
Loading…
Reference in New Issue