﻿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
22576	makemigrations requires 'default' database configuration	anonymous	nobody	"According to https://docs.djangoproject.com/en/1.7/topics/db/multi-db/, it is OK use an empty dictionary as the 'default' entry in settins.DATABASES in a multi-database setup, but the makemigations management command insists on it being configured.

To reproduce, do ""django-admin startproject mmtest"", and edit the settings.py:


{{{
class DbRouter(object):
   def db_for_read(self, model, **hints):
        return 'nondefault';
   db_for_write = db_for_read

DATABASE_ROUTERS = ('mmtest.settings.DbRouter', )

DATABASES = {
    'default': {},
    'nondefault': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
}}}


Stacktrace:

{{{
(mmtest)vagrant@localhost:~/mmtest$ ./manage.py makemigrations
Traceback (most recent call last):
  File ""./manage.py"", line 10, in <module>
    execute_from_command_line(sys.argv)
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/core/management/__init__.py"", line 427, in execute_from_command_line
    utility.execute()
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/core/management/__init__.py"", line 419, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/core/management/base.py"", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/core/management/base.py"", line 337, in execute
    output = self.handle(*args, **options)
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py"", line 56, in handle
    loader.build_graph(ignore_unmigrated=True)
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/db/migrations/loader.py"", line 148, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/db/migrations/recorder.py"", line 48, in applied_migrations
    self.ensure_schema()
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/db/migrations/recorder.py"", line 38, in ensure_schema
    if self.Migration._meta.db_table in self.connection.introspection.get_table_list(self.connection.cursor()):
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/db/backends/__init__.py"", line 162, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File ""/home/vagrant/.virtualenvs/mmtest/local/lib/python2.7/site-packages/django/db/backends/dummy/base.py"", line 18, 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.7-beta-2	Release blocker	fixed		murfi	Accepted	0	0	0	0	0	0
