Программно синхронизировать БД в Django - PullRequest
12 голосов
/ 05 мая 2010

Я пытаюсь синхронизировать свою базу данных из вида, что-то вроде этого:

from django import http
from django.core import management

def syncdb(request):
    management.call_command('syncdb')
    return http.HttpResponse('Database synced.')

Проблема в том, что он заблокирует сервер dev, запрашивая ввод данных от терминала. Как я могу передать ему параметр '--noinput', чтобы не спрашивать меня о чем-либо?

У меня есть другие способы пометить пользователей как суперпользователя, поэтому нет необходимости вводить пользователя, но мне действительно нужно программно вызывать syncdbflush) без входа на сервер через ssh. Любая помощь приветствуется.

Ответы [ 2 ]

20 голосов
/ 05 мая 2010
management.call_command('syncdb', interactive=False)
4 голосов
/ 05 мая 2010

Работает так (по крайней мере, с Django 1.1.):

from django.core.management.commands import syncdb
syncdb.Command().execute(noinput=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...