2014-09-04 2 views
6

특정 순서로 실행해야하는 상당한 양의 사용자 지정 SQL을 포함하는 프로젝트를 비롯하여 많은 수의 South 마이그레이션이 포함 된 프로젝트가 있습니다. 장고 1.7로 업그레이드 한 후이합니다 (Django documentation에서) 남쪽을 사용하는 프로젝트로 변환하는 방법에 대한 추천 : 당신은 이미 남쪽으로 만든 기존의 마이그레이션이있는 경우Django 1.7 마이그레이션 전에 South 마이그레이션을 실행하는 권장 방법은 무엇입니까?

가 다음 업그레이드 프로세스는 장고를 사용하는 .db.migrations는 매우 간단합니다.

  • 모든 설치가 마이그레이션에 대한 최신 정보인지 확인하십시오.
  • INSTALLED_APPS에서 '남쪽'을 제거하십시오.
  • 디렉토리가 아닌 모든 (번호가 매겨진) 이전 파일을 삭제하거나 __init__.py - .pyc 파일도 제거해야합니다.
  • python manage.py makemigrations를 실행하십시오. Django는 빈 이주 디렉토리를보고 새 형식으로 새로운 초기 이주를 수행해야합니다.
  • python manage.py migrate를 실행하십시오. Django는 초기 마이그레이션을위한 테이블이 이미 존재하는지 확인하고이를 실행하지 않고 적용된 것으로 표시합니다. 한마디로

, "기존의 마이그레이션을 닦아 장고가 알아서합니다."

기존 사우스 마이 그 레이션이없는 경우 수행해야 할 작업은 에만 모델 변경으로 구성되지만 대신 직접 SQL, 데이터 마이그레이션 등을 순서대로 실행해야합니다. 이 경우, 자동 생성 된 Django 마이그레이션은 많은 것들을 놓치게 될 것입니다. 왜냐하면 이러한 모든 변경 사항이 모델 파일의 인트로 스페어로부터 명백하지 않기 때문입니다.

이상적으로 South를 사용하여 기존 마이그레이션을 실행 한 다음 Django 마이그레이션을 이어받을 수 있습니다. 이것에 대해 가장 좋은 방법은 무엇일까요? 이것이 가능하지 않거나 권장하지 않는 경우 가장 좋은 대안은 무엇입니까?

+0

마이그레이션이 모든 설치에서 실행 된 후에 폐기 될 수 있다는 것을 의미합니까? 초기 데이터 또는 다른 것을 새로 설치하는 데 사용하고 있습니까? – Kos

답변

3

아마도 post이 도움이 될 수 있습니다.

  1. 이 설정이 줄

    SOUTH_MIGRATION_MODULES = { 'your_app'와 'south_migrations'

  2. 업데이트에 '마이그레이션'에서 현재의 마이그레이션 디렉토리를 변경 : 기본적으로 당신은에있는 'your_project.your_app을 .south_migrations ', }

관련 문제