Opened 8 years ago

Last modified 8 years ago

#27089 closed Cleanup/optimization

commands/makemigrations.py runs MigrationLoader.check_consistent_history() for all database connections — at Initial Version

Reported by: Alexander Holmbäck Owned by: nobody
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

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 connection:
    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 (0)

Note: See TracTickets for help on using tickets.
Back to Top