2010-08-09 3 views
0

장고 응용 프로그램/프로젝트가 기능 및 모델 측면에서 커지면서 관리하는 데 조언이 필요합니다.Django 응용 프로그램/프로젝트가 커질수록 관리 (모델 변경, 기능 향상)

예를 들어 애플리케이션이 커지면서 새로운 기능을 추가해야하는 경우가 있습니다.

새 기능을 추가하려면 새 모델을 추가하거나 모델 내에 새 필드를 추가해야합니다.

당신이하고 가겠어요 어떻게 당신의 장고 프로젝트/응용 프로그램을 관리하는 등 GIT로 ( 장고에서 실행) 웹 응용 프로그램이 도구 버전 통합 할 방법

을 닫지 않고? 최고.

+1

"웹 응용 프로그램을 닫지 않고 어떻게 수행하겠습니까?"라는 의미를 명확히하려고 할 수 있습니까? – sdolan

+0

오, "웹 응용 프로그램을 닫지 않고"라는 말은 오프라인으로 종료하지 않고 의미합니다. 웹 응용 프로그램을 업그레이드하는 동안 웹 응용 프로그램이 작동하도록 허용합니다 (읽기 권한 보유시). – DjangoRocks

답변

4

포괄적 인 답변은 너무 길고 매우 주관적입니다. 나는 대신 당신의 질문에서 제기 된 몇 가지 점에 답하는 데 도움이되는 아주 유용한 도구의 방향으로 당신을 안내하려고 노력할 것입니다.

  1. South 새로운 모델을 추가하고 기존 모델의 변경 사항을 처리합니다. South는 매우 편리한 마이그레이션 도구입니다.
  2. Fabric 및/또는 Buildout 응용 프로그램, 변경 사항 및 모든 것을 배포하는 데 사용됩니다.
  3. Pinax 휠 문제를 해결하고 문제를 해결하는 방법에 대한 새로운 아이디어를 얻을 수 있습니다. Pinax는 일반적인 문제를 해결할 수있는 플러그 가능한 Django 응용 프로그램 모음입니다.

다양한 Django 개발자가 git 등을 통합하는 주제로 작성했습니다. Google 검색을 통해 인기있는 항목을 찾을 수 있습니다. 예 : Django 창시자 중 하나 인 Django 응용 프로그램을 배포하는 방법은 여기 written by Jacob Kaplan-Moss입니다.

여기 내 경험으로 얻은 것들이 있습니다. 그들은 모두 장고 특유의 것은 아닙니다.

  1. 데이터/스키마를 마이 그 레이션하려고 할 때 명확하게 정상 성 검사를 정의하십시오. 이주를 확인하십시오.
  2. 프로젝트 일지를 기록하십시오. 이전, 버전 변경 등과 같은 모든 "이벤트"를 기록하십시오.
  3. Django Snippets을 주시하십시오. 아주 편리합니다.
0

아이디어 프레임 워크의는 모델/뷰/템플릿 구조를 따르는 경우 응용 프로그램이 제정신 방법으로 성장해야하므로, 응용 프로그램을 구성하는 정말입니다.

django의 장점은 각 기능이 응용 프로그램에 포함되어야한다는 것입니다. 새로운 functionnality가 필요한 경우 새 응용 프로그램을 만들고 따라서 새 모델을 만듭니다. 상황은 분리되어 있고 명확합니다.

git에 대해서는 this을 확인해야합니다.

+0

흠. 기존 모델에 새 필드를 추가하려면 어떻게해야합니까? 내가 어떻게 그럴 수 있니? – DjangoRocks

+1

@DjangoRocks : 이전 도구를 사용하여 기존 모델에 필드를 추가하십시오. 예를 들어 다른 도구 (내 사례)를 사용하고 싶지 않은 경우 http://south.aeracode.org/docs/tutorial/part1.html#changing-the-model –

+1

을 참조하십시오. 필드 추가 : 추가 null = True, blank = True로 설정하고 sync db를 실행하십시오. 필드를 제거하려면 모델에서 제거하고 alter table을 사용하여 db에서 제거한 다음 syncdb를 실행하십시오. – Mermoz