diff --git a/django/db/utils.py b/django/db/utils.py index 6202a9a4aa..cb7f3d0f0b 100644 --- a/django/db/utils.py +++ b/django/db/utils.py @@ -151,11 +151,10 @@ class ConnectionHandler: 'ENGINE': 'django.db.backends.dummy', }, } + if DEFAULT_DB_ALIAS not in self._databases: + raise ImproperlyConfigured("You must define a '%s' database." % DEFAULT_DB_ALIAS) if self._databases[DEFAULT_DB_ALIAS] == {}: self._databases[DEFAULT_DB_ALIAS]['ENGINE'] = 'django.db.backends.dummy' - - if DEFAULT_DB_ALIAS not in self._databases: - raise ImproperlyConfigured("You must define a '%s' database" % DEFAULT_DB_ALIAS) return self._databases def ensure_defaults(self, alias): diff --git a/tests/db_utils/tests.py b/tests/db_utils/tests.py index a6cfb43667..db58b58f33 100644 --- a/tests/db_utils/tests.py +++ b/tests/db_utils/tests.py @@ -31,6 +31,13 @@ class ConnectionHandlerTests(SimpleTestCase): with self.assertRaisesMessage(ImproperlyConfigured, msg): conns[DEFAULT_DB_ALIAS].ensure_connection() + def test_no_default_database(self): + DATABASES = {'other': {}} + conns = ConnectionHandler(DATABASES) + msg = "You must define a 'default' database." + with self.assertRaisesMessage(ImproperlyConfigured, msg): + conns['other'].ensure_connection() + class DatabaseErrorWrapperTests(TestCase):