문제

SVN에 Visual Foxpro 데이터베이스(버전 7)를 포함시키려고 시도한 사람이 있습니까?그것을 포함시키는 것의 장점/단점은 무엇이었나요?소스 제어에 포함해야 하는 행이 있는 경우 SCM에서 VFP Db를 처리하는 가장 좋은 방법은 무엇입니까?

올바른 솔루션이 없습니다

다른 팁

Christof Wollenhaupt는 DBC 및 기타 FOX 소스 파일을 XML로 변환하는 "Twofox"라는 도구를 가지고 있습니다. http://www.foxpert.com/docs/cvs.en.htm. 그러나 DBF 파일을 SVN으로 삭제하는 것에 대해 묻는 경우 이진 파일로 가져 와서 버전을 비교/병합하거나 CursortoxML을 사용할 수있는 기능을 잃을 수 있습니다 (7 일 이었습니까?). DBF를 체크인하기 전에 DBF를 XML로 변환합니다.

SVN을 사용하지는 않았지만 VSS 및 Vault와 함께 VFP를 사용했습니다. 이 두 가지를 사용하면 DEV 환경 내에서 어떤 형태의 통합을 사용하지 않고 소스 컨트롤에 파일을 수동으로 추가합니다.

기본적 으로이 접근 할 수있는 두 가지 방법이 있습니다.

  1. .dbc, .dct, .dcx 및 모든 .dbf, .fpt 및 .cdx를 수동으로 추가하십시오.
  2. 데이터베이스에서 스크립트를 작성하여 구조를 작성하고 (수정 된 버전의 GendBCX를 사용) 프로그램이나 클래스에서 보존하려는 데이터 레코드를 스크립트 작성하십시오.

내 설정:



  • P4 워크스테이션의 Debian, 다음 실행:
    • Apache2를 통한 하위 버전
    • Subversion에 대한 후크가 있는 Trac
    • Subversion과 Trac 데이터베이스 모두의 정기적인 야간 백업

솔직히 말해서 우리가 가지고 있는 수 메가바이트 규모의 데이터베이스는 체크인하지 않습니다. 그 이유는 리포지토리 크기만 해도 크기가 약 20GB 이상으로 부풀어오를 것이기 때문입니다.우리는 정기적으로 1.6Gb 테이블(및 해당 메모와 인덱스)을 보유하고 있으며 20GB의 테이블 변경에 대해 1시간 이상의 커밋을 기다리느라 낭비한 시간이 가치가 없습니다.대신 우리는 프로덕션 시스템에서 데이터를 복제하고 이를 사용하여 항목을 "새로 고침"하고 데이터베이스 컨테이너를 재구축하여 테이블에 대한 새로운 링크를 갖습니다."새로 고침" 프로세스는 한 달에 한 번 정도 수행되며 일반적으로 40분 정도로 훨씬 짧은 시간이 소요됩니다.이것을 시간 낭비와 대조해 보세요 매일.

한 번도 저장소에 데이터를 체크인할 필요가 없었습니다.당분간 단일 규칙을 따르면서 스키마 관리가 단순화되었습니다.프로덕션을 위한 모든 패치가 프로덕션에 푸시된 후에만 데이터를 새로 고치십시오. 이는 두 환경의 스키마가 일관될 것임을 의미합니다.지금은 이 문제를 해결할 수 있지만 앞으로는 달라져야 할 것입니다...

스키마 변경만 필요한 경우

테이블을 캡처하려고 하기 때문에 테이블을 체크인해야 하는 경우 개요 그리고 반드시 그런 것은 아니지만 데이터 포함된 경우 주방 싱크대를 소화하기 위해 배송하는 대신 스키마를 텍스트 파일로 펌핑하고 이를 저장소에 커밋하는 작은 도구를 작성하는 것이 좋습니다.

꼭 데이터 체크인이 필요한 경우

테이블에 프로그램 흐름을 제어하는 ​​데 중요한 데이터(프로그램에서 처리되는 데이터뿐만 아니라 코드로서의 데이터)가 있는 경우 데이터를 필요한 최소한으로 자르고 체크인하는 것을 고려할 수 있습니다. 결과 스텁 테이블만 저장소에 수동으로 추가합니다.Subversion이 바이너리 개체를 처리하는 동안 저장소가 정체되지 않도록 이러한 개체를 최소 크기로 유지하고 가능한 한 작게 커밋하는 것이 좋습니다.모든 *.dbf뿐만 아니라 원하는 개별 테이블을 확인하십시오. 그렇지 않으면 작업 복사본이 확인되지 않기 때문에 다른 사람이 몇 기가바이트의 데이터를 저장소에 푸시하려고 할 때 무례한 충격을 받을 수 있습니다. 모든 테이블을 마스킹합니다.

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