У меня есть некоторый код запуска сервера, который лежит в "models.py" одного из моих приложений Django. Мне нужно запустить этот код во время запуска сервера.
Проблема в том, что код выдает SQL-запрос, который не позволяет мне запустить syncdb
с psycopg2
(это прерывает транзакцию и таблицы не создаются.)
Помещать код в промежуточное ПО и поднимать django.core.exceptions.MiddlewareNotUsed
не оптимально, так как я хотел бы получить эффект и в оболочке Django (а помещение кода инициализации в промежуточное ПО в любом случае не звучит правильно). Также я ' Мне нужно дождаться первого запроса, чтобы сделать это. Я хочу запускать код при запуске сервера, а не тогда, когда первый клиент стучится в мой сайт.
Сигналы запуска сервера до сих пор не реализованы в Django, так что это не вариант.
Таким образом, я бы хотел как-нибудь:
- проверить, работает ли Django syncdb, поэтому я не выполняю запросы,
- или, альтернативно, проверьте наличие соответствующих таблиц, а если их нет, то тоже просто не выполняйте никаких запросов
Ни один из вышеперечисленных вариантов я не нашел ни в одной документации. Как я могу это сделать? Или есть лучший (то есть вменяемый) способ делать то, что я хочу делать?