2010-06-24 5 views
5

장고 프로젝트를 배포 할 때 git을 사용하고 싶지만 이번에는 프로덕션 파일 (예 : 업로드 된 파일, sql db 등)를 사용하여 서버에서와 동일한 데이터로 로컬 작업을 쉽게 할 수 있습니다. ) ... 즉, 추가로 생산 파일 (파일 업로드 등이있다 ((있는 "정상적인"개발이/완료 최선을 다하고) 생산 관련 파일을 포함하여 git을 사용하는 장고 배포

  • 생산

    • 마스터 : 내 생각은 세 개의 지점을 가지고하는 것입니다
    • 배포 나를 위해 문제가

    (등 설정 생산은 서버에서 실행하는 데 사용) : 모든 생산 데이터를 파괴/변경하지 않고, 생산 지점에 마스터에 수행 된 변경 내용을 병합하는 방법

    를?

    선택적으로 병합을 수행하는 방법이 있습니까 (예 : 미디어/업로드 파일을 건드리지 않겠습니까?) 또는 "분기 선택 추적"또는 이와 같은 다른 가능성을 처리 할 수 ​​있습니까?

    다른 한편으로는 프로덕션 사용에서 오는 완전한 데이터를 서버에서 쉽게 가져 와서 디버깅을 수행 할 수 있어야합니다. (지금 데이터베이스 스키마 변경 사항을 남겨두고 있습니다. 수동 또는 별도의 방법으로 수행 할 수 있기 때문에)

  • 답변

    1

    저는 서버 이름으로 약간 혼란 스럽습니다. 제작, 준비, 개발에 익숙합니다.

    아마도 데이터베이스를 sql 코드로 덤프하거나 데이터를 출력 할 방법을 지정해야합니다. 그런 다음 master (development?) 서버로 전송해야합니다. 당신은 git 저장소에 프로덕션 환경에 업로드하고 개발시 그것을 끌어 와서 할 수 있습니다. Fabric은 매우 쉽습니다.

    하지만 데이터를 git 저장소에 저장하는 것은별로 좋지 않습니다. 데이터베이스 덤프 병합을 시도하지 않았으므로 확실하지 않습니다. 얼마나 많은 데이터에 대해 이야기하고 있습니까? git은 빠르지 만 대용량 데이터베이스 덤프를 병합하고 커밋하는 것은 어려운 과정 일 수 있습니다.

    우리는 로컬 시스템에 작은 테스트 데이터베이스 (닦아 낼 수 있음)를 가지고 있으며 프로덕션 서버 옆에 별도의 DB가있는 하나의 스테이징 서버를 실행하는 경향이 있습니다.

    기본 django 모델이 변경되면 스테이징 및 프로덕션 서버에서 South을 사용하여 새 데이터베이스로 마이그레이션합니다.

    업로드 된 파일을 Fabric과 함께 타르면 분석을 위해 컴퓨터로 다운로드해야하지만 모든 내용을 로컬 컴퓨터로 전송하지 않고도 준비 작업 서버에서 많은 작업을 수행 할 수 있습니다.

    여전히 정적 자료를 git 저장소에 추가하려면 정적 파일을 하위 디렉토리에 추가하기 만하면됩니다. 그 파일 서버를 그 서브 디렉토리에서 곧바로 서비스하도록 설정할 수 있습니다. 또는 너무 불안정한 경우 git이 다른 위치로 당긴 다음 파일을/var/www-static/Fabric으로 복사하십시오.

    +0

    답장을 보내 주시면 Fabric을 살펴 보겠습니다. 이미 남쪽을 사용하고 있지만 언급 한대로 데이터베이스 만 문제는 아닙니다 ... –

    관련 문제