django автоматизировать syncdb
Я работаю над проектом, который включает в себя сервер Django, а также модуль установки.
Пользователь будет настраивать свою систему для запуска моей программы, которая включает в себя элемент веб-сервера django наряду с другими элементами. Я работаю над модулем установки, который помогает пользователю правильно настроить все параметры и настраивает все соответствующие файлы. Одна из вещей, которую я хотел бы видеть в процессе установки, - это, по сути, команда manage.py syncdb, которая создает соответствующий файл и таблицу SQLite из ничего.
Я мог бы взять код, найденный в manage.py, и напрямую вставить его в мой установочный модуль, но я не уверен, что есть лучший подход, который мне не хватает - по двум строкам:
import django.something
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.something.syncdb()
Или что-то в этом роде. Я просто что-то здесь упускаю?
1 ответ
Это должно сделать это:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core import management
management.call_command('syncdb', interactive=False)
Вы также можете сделать
import os
import settings
from django.core.management.commands import syncdb
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
syncdb.Command().execute(noinput=True)