﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
26930	makemigrations tries to access default databases even when set to empty	lizlemon	nobody	"makemigrations always tries to access the default database, so it raises an error when settings.DATABASES 'default' key is set to empty dict. This was fixed previously in #22576, but there has been a regression. 

The issue appears to be in django/core/management/commands/makemigrations.py


{{{
        for db in connections:
            loader.check_consistent_history(connections[db])
}}}

in settings.py:



{{{
DATABASES = {
    'default': {},
    'leftside': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db-left.sqlite3'),
    },
    'rightside': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db-right.sqlite3'),
    }
}

}}}

Then create a model in an application and define  a router for it, and then run {{{manage.py makemigrations}}}

With 1.8 and other releases this will create the migrations, but current version raises an error:

{{{
Traceback (most recent call last):
  File ""manage.py"", line 22, in <module>
    execute_from_command_line(sys.argv)
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/core/management/__init__.py"", line 367, in execute_from_command_line
    utility.execute()
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/core/management/__init__.py"", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/core/management/base.py"", line 305, in run_from_argv
    self.execute(*args, **cmd_options)
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/core/management/base.py"", line 356, in execute
    output = self.handle(*args, **options)
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/core/management/commands/makemigrations.py"", line 98, in handle
    loader.check_consistent_history(connections[db])
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/db/migrations/loader.py"", line 276, in check_consistent_history
    applied = recorder.applied_migrations()
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/db/migrations/recorder.py"", line 65, in applied_migrations
    self.ensure_schema()
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/db/migrations/recorder.py"", line 52, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/db/backends/base/base.py"", line 238, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File ""/home/lemon/code/envs/dj34/lib/python3.4/site-packages/django/db/backends/dummy/base.py"", line 21, in complain
    raise ImproperlyConfigured(""settings.DATABASES is improperly configured. ""
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
}}}

"	Bug	closed	Migrations	1.10	Release blocker	fixed			Accepted	1	0	0	0	0	0
