Django를 사용하여 DVC를 통해 데이터베이스 변경을 쉽게 이동할 수 있도록하는 방법

StackOverflow https://stackoverflow.com/questions/1646074

문제

개요

나는 Django에서 웹 사이트를 작성하고 있습니다. 사람들이 플랫 페이지를 추가하기 시작하고 관리자에 일부 설정을 설정하도록해야합니다. 정보는 클라이언트에서 나오기 때문에 이러한 변경 사항은 결정적이어야합니다. 그러나 나는 또한 백엔드를 개발하고 있으며, 따라서 테이블을 만들고 마이그레이션 할 것입니다. 나는 이러한 변화를 허브로 밀어 넣습니다.

도구

장고

git

남쪽

포스트 그레

문제

Lappy에서 온라인 사이트에서 데이터베이스 변경을받을 수있는 방법과 데이터베이스 변경 사항을 라이브 사이트로 푸시하여 최소한의 조정이 필요한 방법은 무엇입니까? 나는 git 후크에 익숙하기 때문에 그 옵션이 작동 중입니다.

부록:

관리자를 통해 어떤 테이블을 수정할 수 있는지 알고 있다고 생각합니다. 실제로 많은 겹치는 것은 안됩니다. 내가 더 고려할 때, 위험은 실제로입니다 그들이 한 일을 덮어 쓸 수있는 데이터를 푸시합니다.

감사.

도움이 되었습니까?

해결책

스키마 변경을 서버로 연결하려면 South를주의 깊게 사용하십시오. 데이터가있는 테이블을 수정하면 스키마 마이그레이션을 모두 작성하고 필요한 경우 데이터 마이그레이션을 작성하여 데이터 감각을 보존하십시오.

업데이트 된 데이터를 다시 가져 오기 위해 (중요하지는 않지만 개발 중에 최신 테스트 데이터로 작업하는 것이 좋을 수도 있음) 일반적으로 Django Fixtures와 DempData 및 LoadData 명령을 사용합니다. . 고정물을 버리고 repo에 커밋 한 다음 끝에로드 데이터를 제공하는 것은 쉽습니다.

git 후크를 사용 하여이 중 일부를 자동화하려고 시도 할 수 있지만 자동화를 원한다면 대신 직물과 같은 것을 시도하는 것이 좋습니다. 이 물건의 대부분은 푸시/당기는 때마다 실행할 필요가 없습니다 (특히, 나는 일반적으로 자주 새로운 데이터 고정물을 버리고 싶지 않습니다).

다른 팁

아마도 남쪽을 살펴 봐야 할 것입니다.

http://south.aeracode.org/

당신이 일종의 연속 통합 시스템을 수행하고 있다면 남쪽으로 트리거하는 git 훅을 만들 수있을 것 같습니다.

그렇지 않으면, 푸시 할 때마다 마이그레이션 단계를 직접 수동으로 실행해야합니다. "사이트가 유지 보수중인"메시지를 올리는 것을 잊지 마십시오. ;)

나는 당신이 사용하는 것이 좋습니다 MK 테이블-동시 라이브 서버에서 랩톱으로 변경을 당기려면 MK-Table-Sync는 많은 매개 변수를 사용하여 사용 하여이 프로세스를 자동화 할 수 있습니다. 구조. 기본적으로 서버에서 가져올 각 태블릿에서 MK-Table-Sync를 실행하는 패브릭 기능을 만듭니다.

이것은 Dabatase가 풀로 쓰여질 것이기 때문에 자신을 변화시킬 수 없다는 것을 의미합니다.

라이브 데이터베이스에 대한 유일한 변경 사항은 South를 사용하는 것입니다. 코드를 서버로 푸시 한 다음 실행합니다. 마이그레이션 데이터베이스 스키마를 업데이트합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top