After double squashing migrate command fails with InconsistentMigrationHistory
Ticket #24529 implemented the possibility to squash squashed migrations.
To reproduce this issue, make four migrations, migrate, squash the first two, then squash the first three: then migrate (or makemigrations --check) fails.
manage.py makemigrations myapp --empty
manage.py makemigrations myapp --empty
manage.py makemigrations myapp --empty
manage.py makemigrations myapp --empty
manage.py migrate
manage.py squashmigrations myapp 0001 0002
manage.py squashmigrations myapp 0001_initial_squashed 0003
manage.py migrate
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration myapp.0004_auto_20250126_1339 is applied before its dependency new.0001_initial_squashed_0002_auto_20250126_1339_squashed_0003_auto_20250126_1339 on database 'default'.
Other migration commands can be subbed for that last call and still produce the same error, e.g. makemigrations --check, which is likely in a CI setting.
Change History
(12)
| Resolution: |
→ needsinfo
|
| Status: |
new → closed
|
| Resolution: |
needsinfo → invalid
|
| Severity: |
Release blocker → Normal
|
| Has patch: |
set
|
| Resolution: |
invalid
|
| Status: |
closed → new
|
| Severity: |
Normal → Release blocker
|
| Version: |
dev → 6.0
|
| Description: |
modified (diff)
|
| Triage Stage: |
Unreviewed → Accepted
|
| Triage Stage: |
Accepted → Ready for checkin
|
| Owner: |
set to Georgi Yanchev
|
| Status: |
new → assigned
|
| Resolution: |
→ fixed
|
| Status: |
assigned → closed
|
You should run migrate after each squash:
Do you think this needs to be clearer in the docs?