2017-01-23 9 views
0

저는 Python/Django로 작성되었으며 최근에 models 중 하나를 변경했습니다. 이 새로운 기능을 개발하기 전에 변경 사항을 테스트하고 싶습니다. models에 대한 변경 사항이 적용되기 전에 python manage.py makemigrations & python manage.py migrate을 실행해야한다는 것을 알고 있습니다. .Django/Python- 로컬 분기에서 makemigrations를 실행해야합니까? 아니면 마스터에서만 실행해야합니까?

나는 master에 별도의 git 분기에 개발을하고 있지만, 생각하고 조금 모르는 것을 가장 좋은 방법은 (내가 파이썬/장고 & 힘내 모두 비교적 새로운 오전) 다른 나뭇 가지에 마이그레이션을 실행의 측면에서 여기에있다.

makemigrations을 개발 브랜치에 실행하고 지금까지 수행 한 버그 수정을 테스트 한 것과 같은 방식으로 테스트하거나 개발 분기를 master과 병합해야합니까? makemigrations을 실행하기 전에?

내 개발 지점에서 마이 그 레이션을 실행하면 변경 사항을 병합 한 후에 master에서 다시 실행해야한다는 것을 알고 있습니다. 그러나이 방법이나 위험 요소가 있는지 궁금한 점이 있습니다. 나는 밖으로보아야합니까?

답변

2

일반적으로 개발 분기에서 makemigrations를 수행하면 코드 (이 경우 마이그레이션 파일)를 상위 분기 (UAT, 스테이징, 마스터 등)로 옮깁니다.

이렇게하면 다른 분기에서 makemigrations를 실행할 필요가 없지만 migrate 명령 만 실행할 수 있습니다.

당신이 필요로하는 당신은 정말 성능에 영향을주지 않습니다 매우

를 최적화되어, 많은 마이그레이션 파일을 가질 수 있습니다 할 수 있습니다 항상 스쿼시/너무 많이가있는 경우 또는 당신이 이렇게하는 것을 바라는 경우에 당신의 마이그레이션을 병합 .

Squasing Migrations

0

가 자동으로 모델을 수정 한 응용 프로그램의 "마이그레이션"폴더에 파이썬 파일을 생성합니다 makemigrations 실행을 참조하십시오. 이 파일들은 모델의 수정에서 분리 될 수 없기 때문에 git에서 버전 화되어야합니다.

그런 다음 분기를 병합 할 때 모델의 수정과 해당 마이그레이션이 git 트리에있게됩니다. 따라서 migrate을 호출하면 DB가 현재 모델에 설명 된 현재 상태와 동기화됩니다.