djangoautomationdjango-syncdb

Automatically create an admin user when running Django's ./manage.py syncdb


My project is in early development. I frequently delete the database and run manage.py syncdb to set up my app from scratch.

Unfortunately, this always pops up:

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): 

Then you have supply a username, valid email adress and password. This is tedious. I'm getting tired of typing test\nx@x.com\ntest\ntest\n.

How can I automatically skip this step and create a user programatically when running manage.py syncdb ?


Solution

  • I know the question has been answered already but ...

    A Much simpler approach is to dump the auth module data into a json file once the superuser has been created:

     ./manage.py dumpdata --indent=2 auth > initial_data.json
    

    You can also dump the sessions data:

    ./manage.py dumpdata --indent=2 sessions
    

    You can then append the session info to the auth module dump (and probably increase the expire_date so it does not expire... ever ;-).

    From then, you can use

    /manage.py syncdb --noinput
    

    to load the superuser and his session when creating the db with no interactive prompt asking you about a superuser.