2017-02-23 2 views

답변

2

작성자가 "django under the hood"컨퍼런스에서 한 번 설명했습니다. 나는 그 요약을 가지고있다 : http://reinout.vanrees.org/weblog/2014/11/14/2migrations.html

작동 방식은 모든 작업을 작은 종속성으로 잘라내는 것이다. 생성되어야하는 모든 개별 필드는 작은 종속성 단계로 바뀝니다. 단계 목록이 종속성 해결 루프를 통해 올바른 단계 목록으로 정렬되면 최적화 프로그램이 목록을 검토하여 최적화합니다. 모델이 생성되고 삭제되면 아무것도 수행 할 필요가 없습니다.

퍼즐의 마지막 부분은 그래프입니다. 메모리에있는 모든 기본 마이그레이션의 방향 그래프를 작성합니다. 그것을 위해 디스크의 모든 모델을 읽어야합니다. 또한 데이터베이스를 검색합니다. 거기에 마이 그 레이션 (또는 마이 그 레이션 그래프의 노드)이 적용된 표가있는 표가 있습니다. 당신이 코드를 보면하려면

, 여기에 몇 가지 포인터는 다음과 같습니다

  • django/db/migrations/autodetector.py,에서
  • django/db/migrations/graph.py
  • django/db/migrations/loader.py
  • ) (감소 시작, _detect_changes()
  • django/db/migrations/optimizer.py에서 시작
+0

** 광고 문안 ** **이 답변은 처음에는 처음 단락에 불과했습니다. 링크. 2 분 후에 나머지 답변을 추가했을 때 이미 두 번 downvoted되었습니다. 한 번에 답변을 제출하지 않으셔서 죄송합니다. –

+0

감사합니다. @Reinout van Rees – Prafulla