| 1 |  | When creating a new project, you can sometimes forget to run `manage.py migrate` before creating the initial superuser (especially if you don't execute `runserver` before, which display a warning about migrations not applied). The resulting error make sense, it can't access to auth_user, since it does not exist yet: | 
          
            | 2 |  |  | 
          
            | 3 |  |  | 
          
            | 4 |  | {{{ | 
          
            | 5 |  | $ django-admin.py startproject sample | 
          
            | 6 |  | $ cd sample/ && python manage.py createsuperuser | 
          
            | 7 |  | Traceback (most recent call last): | 
          
            | 8 |  | File "manage.py", line 10, in <module> | 
          
            | 9 |  | execute_from_command_line(sys.argv) | 
          
            | 10 |  | [...] | 
          
            | 11 |  | File "/vagrant/django/django/contrib/auth/management/commands/createsuperuser.py", line 85, in handle | 
          
            | 12 |  | default_username = get_default_username() | 
          
            | 13 |  | File "/vagrant/django/django/contrib/auth/management/__init__.py", line 189, in get_default_username | 
          
            | 14 |  | auth_app.User._default_manager.get(username=default_username) | 
          
            | 15 |  | [...] | 
          
            | 16 |  | File "/vagrant/django/django/db/backends/sqlite3/base.py", line 323, in execute | 
          
            | 17 |  | return Database.Cursor.execute(self, query, params) | 
          
            | 18 |  | django.db.utils.OperationalError: no such table: auth_user | 
          
            | 19 |  | }}} | 
          
            | 20 |  |  | 
          
            | 21 |  | ... but with a little try/except, it could be nicer and give a more meaningful information: | 
          
            | 22 |  |  | 
          
            | 23 |  | {{{ | 
          
            | 24 |  | $ python manage.py createsuperuser | 
          
            | 25 |  | CommandError: You must execute `manage.py migrate` once before creating a super user | 
          
            | 26 |  | }}} | 
          
            | 27 |  |  | 
          
            | 28 |  | I have a patch ready (as I said, it just a try/except, see attachment) but, if accepted, it would need unit tests to be complete. | 
          
            |  | 1 | https://github.com/django/django/pull/5643 |