Program Tip

Django 1.9에서 syncdb 대신 무엇을 사용해야합니까?

programtip 2020. 11. 10. 22:11
반응형

Django 1.9에서 syncdb 대신 무엇을 사용해야합니까?


이것 좀보세요 :

$ pypy ./manage.py syncdb
/usr/lib64/pypy-2.4.0/site-packages/django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
  warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)

(cut)

빠른 Google 검색을 실행 했지만 답을 찾을 수 없습니다. 대신 무엇을 사용해야 syncdb합니까?


syncdbdjango 1.7 과 함께 도입 된 마이그레이션 시스템 때문에 더 이상 사용되지 않습니다 .

이제를 사용하여 변경 사항을 추적 할 수 있습니다 makemigrations. 이렇게하면 모델 변경 사항이 Python 코드로 변환되어 다른 데이터베이스에 배포 할 수 있습니다. 추가 수정 사항이 데이터베이스에 적용되어야하는 경우 데이터 마이그레이션을 사용할 수 있습니다 .

마이그레이션을 만든 후 적용 해야합니다 migrate..

그래서 사용하는 대신 syncdb사용합니다 makemigrations다음과 migrate.

모델에서 변경 한 후 개발 작업 흐름 :

./manage.py makemigrations
./manage.py migrate

그리고 프로덕션 시스템에서 :

./manage.py migrate

보너스 : migrate변경할 때마다 달리지 않아도됩니다 . 아직 적용되지 않은 여러 변경 사항이있는 경우 django는 올바른 순서로 변경 사항을 실행합니다.


반드시 마이그레이션 시스템을 사용해야 합니다 . 이를 통해의 변경 사항을 추적 models.py하고 데이터베이스에 대한 마이그레이션을 생성 할 수 있습니다 . 마이그레이션 시스템은 명령 makemigrations을 사용하여 마이그레이션을 만들고 migrate데이터베이스를 마이그레이션합니다.

어떤 이유로 든 동일한 방식으로 데이터베이스를 생성해야하는 경우 동일한 방식 으로 작동하는 syncdb명령 플래그가 migrate있습니다. 정말 필요하고 무엇을하고 있는지 알고있는 경우에만이 작업을 수행 해야합니다. 예를 들어, 선택한 연속 통합 시스템을 위해 빈 데이터베이스를 생성합니다.

python manage.py migrate auth
# performs migrations for auth and contenttypes contrib apps

python manage.py migrate --run-syncdb
# creates the rest of the database

Django 1.9.1에서 테스트되었습니다.


django 1.7에 도입 된 makemigrationsmigrate명령을 사용해야합니다.

https://docs.djangoproject.com/en/1.7/topics/migrations/


syncdbdb 마이그레이션에 문제가 있습니다. 그래서, 1.7 장고 후 makemigrationsmigrate도입되었습니다. 이제 django 1.9 syncdb에서는 더 이상 사용되지 않습니다. 시도
1. python manage.py makemigrationsdb의 변경 사항을 감지하고 .py마이그레이션 폴더 내에서 하나의 파일을 생성 합니다. 2. python manage.py migrate마이그레이션을 데이터베이스에 적용합니다.

참고 URL : https://stackoverflow.com/questions/29683494/what-should-i-use-instead-of-syncdb-in-django-1-9

반응형