#27089 closed Cleanup/optimization (fixed)
Add the database alias to InconsistentMigrationHistory message
Reported by: | Alexander Holmbäck | Owned by: | Tim Graham |
---|---|---|---|
Component: | Migrations | Version: | 1.10 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
In the file django/core/management/commands/makemigrations.py (line 97-100), an instance of MigrationLoader (loader) checks consistency on every database connection defined in settings.py.
for db in connections: connection = connection[db] if connection.settings_dict['ENGINE'] != 'django.db.backends.dummy': loader.check_consistent_history(connection)
The loader will then raise an InconsistentMigrationHistory exception for a connection whose migrations is not applied consistently, even if it's not to participate in the migration process.
I didn't expect makemigrations
would check connections that isn't to be migrated. Also, the error message "Migration xxx is applied before its dependency xxx" (line 285 in db/migrations/loader.py) didn't indicate checked connection.
A more intuitive behavior would be to check only the connection that is to be migrated, or, if that isn't possible, include connection name in the error message.
Change History (4)
comment:1 by , 8 years ago
Has patch: | set |
---|---|
Owner: | changed from | to
Status: | new → assigned |
Summary: | commands/makemigrations.py runs MigrationLoader.check_consistent_history() for all database connections → Add the datbase alias to InconsistentMigrationHistory message |
Triage Stage: | Unreviewed → Accepted |
Type: | Bug → Cleanup/optimization |
comment:2 by , 8 years ago
Description: | modified (diff) |
---|---|
Summary: | Add the datbase alias to InconsistentMigrationHistory message → Add the database alias to InconsistentMigrationHistory message |
makemigrations
doesn't run "per database" so that's why all connections are checked.Accepting on the basis that the database alias should appear in the message. Thanks for that suggestion.
PR