me gustaría tener estas líneas de código que se ejecuta en el arranque del servidor (tanto en el desarrollo y producción):¿Dónde poner el código de inicio de Django?
from django.core import management
management.call_command('syncdb', interactive=False)
Ponerlo en settings.py
no funciona, ya que requiere la configuración para ser cargado ya.
Ponerlos en una vista y acceder a esa vista externamente tampoco funciona, ya que hay algunos middlewares que usan la base de datos y estos fallarán y no me permitirán acceder a la vista.
Ponerlos en un middleware funcionaría, pero se llamaría cada vez que se accede a mi aplicación. Una posible solución podría ser crear un middleware que haga todo el trabajo y luego se elimine del MIDDLEWARE_CLASSES
para que ya no se llame. ¿Puedo hacer eso sin demasiado parche de mono?
Gracias por la respuesta rápida. Esto es exactamente lo que necesito. –
Es un buen truco del que no tenía conocimiento. –
Según http://stackoverflow.com/questions/6791911/execute-code-when-django-starts-once-only, esto puede ser problemático. Aquí se sugiere poner la función de inicio en urls.py – Michael