참고 : 버전 1.7 syncdb
명령은 더 이상 사용되지 않습니다 . migrate
대신 사용하십시오 .
또한 Django 1.7은 애플리케이션의 초기화 프로세스를 사용자 정의하는 수단으로 AppConfig 를 도입했습니다 .
따라서 Django 1.7 이후로 원하는 것을 달성하는 가장 간단한 방법은 AppConfig
의 하위 클래스 를 사용하는 것 입니다.
예를 들어, 자신 example_app
이 자신의 것을 추가하고 처음부터 실행할 때마다 관리자 암호로 사용자 INSTALLED_APPS
를 만들고 관리 하려고합니다 . 또한 자동 관리자 사용자 생성은 프로덕션이 아닌 개발 환경 에서만 필요하다고 가정합니다 ../manage.py migrate
다음 코드를 추가하십시오. example_app/apps.py
from django.apps import AppConfig
from django.conf import settings
from django.db.models.signals import post_migrate
from django.contrib.auth.apps import AuthConfig
USERNAME = "admin"
PASSWORD = "admin"
def create_test_user(sender, **kwargs):
if not settings.DEBUG:
return
if not isinstance(sender, AuthConfig):
return
from django.contrib.auth.models import User
manager = User.objects
try:
manager.get(username=USERNAME)
except User.DoesNotExist:
manager.create_superuser(USERNAME, 'x@x.com', PASSWORD)
class ExampleAppConfig(AppConfig):
name = __package__
def ready(self):
post_migrate.connect(create_test_user)
또한 앱 내부의 앱 구성에 다음 참조를 추가하십시오 example_app/__init__.py
.
default_app_config = 'example_app.apps.ExampleAppConfig'
여기서 default_app_config는 여기에AppConfig
언급 된 하위 클래스에 대한 문자열 Python 경로 입니다.
syncdb
데이터 마이그레이션을 위해 더 이상 사용되지 않음