Opened 18 years ago
Closed 18 years ago
#7040 closed (invalid)
Friendlier error messages when database connection fails on runserver startup
| Reported by: | Emil Stenström | Owned by: | nobody |
|---|---|---|---|
| Component: | django-admin.py runserver | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | em@… | Triage Stage: | Unreviewed |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
My most common error when starting the development server (runserver) is that I have forgot to start my database. When I do this I get a nasty stacktrace in the face. I suggest that you specifically look for database connection error and present the user with a friendlier error message.
Current error:
C:\mysite>manage.py runserver
Validating models...
Unhandled exception in thread started by <function inner_run at 0x00CC52B0>
Traceback (most recent call last):
File "C:\Program Files\Django\django\core\management\commands\runserver.py", line 47, in inner_run
self.validate(display_num_errors=True)
File "C:\Program Files\Django\django\core\management\base.py", line 112, in validate
num_errors = get_validation_errors(s, app)
File "C:\Program Files\Django\django\core\management\validation.py", line 68, in get_validation_errors
db_version = connection.get_server_version()
File "C:\Program Files\Django\django\db\backends\mysql\base.py", line 195, in get_server_version
self.cursor()
File "C:\Program Files\Django\django\db\backends\__init__.py", line 33, in cursor
cursor = self._cursor(settings)
File "C:\Program Files\Django\django\db\backends\mysql\base.py", line 182, in_cursor
self.connection = Database.connect(**kwargs)
File "C:\Program Files\Python\lib\site-packages\MySQLdb\__init__.py", line 74, in Connect
return Connection(*args, **kwargs)
File "C:\Program Files\Python\lib\site-packages\MySQLdb\connections.py", line 170, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")
Note:
See TracTickets
for help on using tickets.
I'm going to mark this as invalid, the error message clearly says that it could not connect to the database, trying to offer a simpler error message will backfire when a complicated case occurs and the user is being given simplified messages that are of no help.