2013-04-19 1 views
0

개발중인 응용 프로그램에서 데이터베이스 스키마의 마이그레이션이 필요합니다. 나는 장고 - 남쪽에 대해 생각해 봤지만, 내가 잃어버린 그런 종류의 물건에 대한 경험이 없기 때문에 이것이 내 상황이다.django-south에서 마이그레이션하는 방법

개발 코드 : 최신 모델, 나는 무엇을 추적 했는가? 모델에 대한 변경 사항

생산 코드 : 실행 코드는 이전 모델을 가지고 있습니다. 우리는 git pull만으로 배포를 할 수 있도록 서버를 구성했습니다 :)

아무 것도하지 않고 어떻게 프로덕션 (및 DB)의 코드를 업데이트 할 수 있습니까? --initial 문에 대해 본 적이 있지만이 경우에는 작동하지 않는다고 생각합니다. convert_to_south은 마이그레이션 기록을 가짜로 만들었지 만 여전히 어떻게해야합니까? 어떤 도움을 주시겠습니까?

답변

1

이 프로젝트의 버전 관리를 만들고 Fabric과 같이 배포하는 것이 좋습니다. 이것은 당신의 생산 환경을 멋지게 포함 할 것입니다.

남쪽에는 마법이 없습니다. 설치된 앱 설정에 남쪽을 추가하고 초기 스키마 마이그레이션을 실행 한 다음 허위 마이그레이션 (migrate <app_name> --fake)을 실행하면 모델의 현재 상태를 '알 수 있습니다.' 스키마 변경 사항이 포함 된 이후 릴리스에서는 모델을 적절히 업데이트하기 위해 schemamigration <app_name> --automigrate <app_name>을 실행할 수 있습니다.

는 설정 파일에 설정 마이그레이션을 사용하여 한 곳에서 마이그레이션을 유지하려면 :

SOUTH_MIGRATION_MODULES = { 
    'app_name_1': 'project_name.migrations.page', 
    'app_name_2': 'project_name.migrations.medialibrary', 
} 
+0

그 명령을 실행해야합니까? 개발 코드 또는 프로덕션 서버에 있습니까? :) –

+0

모두에 대한 schemamigrations을 제어하려는 경우 (또는 데이터베이스 당 한 번) –

1

당신은 초기를 생성, (다시 생산 상태로 모델을 얻기 위해) 생산 버전을 체크 아웃해야합니다 이전, 현재 개발 분기로 해당 마이그레이션을 복사 한 다음 스키마 마이그레이션을 작성하십시오.

+0

자세한 설명을 주셔서 감사합니다! :) –