Alex Rivera | Logout

Where to put Django startup code?

Asked 2010-05-06T13:18:46.677
57

I'd like to have these lines of code executed on server startup (both development and production):

from django.core import management
management.call_command('syncdb', interactive=False)

Putting it in settings.py doesn't work, as it requires the settings to be loaded already.

Putting them in a view and accessing that view externally doesn't work either, as there are some middlewares that use the database and those will fail and not let me access the view.

Putting them in a middleware would work, but that would get called each time my app is accessed. An possible solution might be to create a middleware that does all the job and then removes itself from MIDDLEWARE_CLASSES so it's not called anymore. Can I do that without too much monkey-patching?

Edit
Report

1 Answer

1

If you are using mod_wsgi you can put it in the wsgi start app

answered 2010-05-07T15:01:00.147

Your Answer