> 백엔드 개발 > PHP 튜토리얼 > DBV를 사용한 데이터베이스 버전

DBV를 사용한 데이터베이스 버전

Christopher Nolan
풀어 주다: 2025-02-21 12:09:10
원래의
906명이 탐색했습니다.

DBV를 사용한 데이터베이스 버전 키 테이크 아웃

DBV는 MySQL 데이터베이스를위한 PHP 기반 데이터베이스 버전 제어 시스템입니다. 독립형이 아니며 팀과 변경 사항을 동기화하기 위해 GIT, Mercurial 또는 SVN과 같은 버전 제어 시스템이 필요합니다. DBV를 사용하면 개발자가 데이터베이스에 대한 변경 사항을 추적하고 이러한 변경 사항을 팀원과 공유 할 수 있으며 모든 사람이 데이터베이스의 최신 사본으로 작업하고 있는지 확인합니다. 새 테이블과 같은 변경 사항, 이름이 바뀌거나 삭제 된 테이블, 새 또는 업데이트 된 필드, 신규 또는 업데이트 된 테이블 행 등을 추적 할 수 있습니다. DBV 워크 플로에는 데이터베이스의 로컬 사본을 작성하고 변경하고 이러한 변경 사항을 디스크로 내보내고 소스 제어로 커밋하고 중앙 저장소로 밀어 넣는 것이 포함됩니다. 그런 다음 팀원은 이러한 변경 사항을 현지 사본으로 가져올 수 있습니다. DBV는 또한 개정을 지원하므로 개발자는 하나 이상의 테이블의 구조를 수정할 수 있습니다. 그러나 변경 사항이 서로 관련되지 않는 한 단일 테이블을 변경하고 개정을하는 것이 좋습니다.

프로젝트에서 항상 버전 제어 시스템을 사용하는 것이 좋습니다. 당신이 유일한 개발자 인 사이드 프로젝트이거나 5 명 이상의 사람들이 함께 일하는 팀 프로젝트입니다. 그러나 데이터베이스를 버전 제어에 넣는 아이디어는 실제로 그다지 널리 퍼지지는 않습니다. 종종 우리는 데이터베이스를 당연한 것으로 여깁니다.

그러나 프로젝트의 소스 파일과 마찬가지로 데이터베이스도 지속적으로 변경되고 있습니다. 그렇기 때문에 변경 사항을 추적하고 팀의 다른 구성원과 쉽게 공유 할 수있는 방법이 필요합니다.
    이 기사에서는 MySQL 데이터베이스에 대해 PHP로 작성된 데이터베이스 버전 제어 시스템 인 DBV를 살펴 보겠습니다. Apache 또는 Nginx와 같은 웹 서버와 함께 사용하기 전에 PHP와 MySQL을 설치해야합니다.
  • 이 소프트웨어에 대한 중요한 참고 사항은 팀과의 변경 사항을 동기화하기 위해 GIT, Mercurial 또는 SVN과 같은 버전 제어 시스템이 필요하기 때문에 독립형 데이터베이스 버전 제어 시스템이 아니라는 것입니다. dbv 설치 DBV와의 작업을 시작하려면 먼저 웹 사이트에서 설치 프로그램을 다운로드하고 프로젝트 디렉토리로 추출한 다음 결과 폴더의 이름을 DBV로 바꿔야합니다. 이것은 다음과 같은 경로를 줄 것입니다 :
  • 대안 접근법은 단지 github에서 복제하는 것입니다 dbv 구성 config.php.sample 파일의 사본을 만들고 config.php로 이름을 바꾸어 DBV 옵션 구성을 시작할 수 있습니다. 여기서 업데이트해야 할 가장 중요한 것은 첫 두 섹션입니다. 현재 데이터베이스 구성의 값에 대해 my_username, my_password, my_database의 값을 대체하십시오.
  • 위의 구성 파일의 첫 번째 섹션은 컴퓨터의 MySQL 데이터베이스 세부 사항에 관한 것입니다. 두 번째 섹션은 DBV 자체의 로그인 세부 정보입니다.
  • 다음으로 .gitignore 파일을 엽니 다. 기본적으로 다음은 포함됩니다

    이 파일은 git에 의해 무시 될 파일입니다. 그러나 팀 메이트와 동일한 데이터베이스 정보 (사용자, 비밀번호, 데이터베이스 이름)가 있다는 것을 알고 있다면 .gitignore 파일에서 config.php를 제거 할 수 있습니다. 그렇지 않으면 자체 구성 파일을 작성하고 소스 컨트롤에서 제외해야합니다. 다음으로 DBV가 데이터베이스의 로컬 사본에 대한 정보를 넣는 데이터/메타/개정 파일도 .gitignore에 데이터/메타/개정 파일을 추가해야합니다. 팀 동료들에게는 다를 수 있으므로 소스 제어에서 제외해야합니다.

    . 구성을 완료하면 이제 버전 제어에 DBV를 추가 할 수 있습니다.
    <span>my_project/dbv</span>
    로그인 후 복사
    로그인 후 복사
    그런 다음 팀의 다른 구성원이 당기기 위해 중앙 저장소로 밀어 넣습니다.

    추적을 유지하기 위해 어떤 변화가 있습니까? 우리는 실제로 DBV를 사용하여 전환하기 전에. 나는 어떤 변화를 추적하기 위해 약간의 접촉을하고 싶습니다. 데이터베이스 세계에서는 거의 모든 변경 사항을 소스 제어로 넣을 수 있습니다. 여기에는 다음이 포함됩니다

    새로운 테이블 이름이 변경 된 테이블

    삭제 된 테이블

    새로운 필드 업데이트 된 필드 삭제 된 필드 새 테이블 행 (기본 테이블 데이터) > 업데이트 된 테이블 행 삭제 된 테이블 행

    저장 절차 트리거 함수 (사용자 정의 함수)

    DBV 워크 플로 다음 URL에 액세스하여 브라우저에서 DBV를 발사 할 수 있습니다.
    <span><span><?php
    </span></span><span><span>/**
    </span></span><span><span> * Your database authentication information goes here
    </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
    </span></span></span><span><span> */
    </span></span><span><span>define('DB_HOST', 'localhost');
    </span></span><span><span>define('DB_PORT', 3306);
    </span></span><span><span>define('DB_USERNAME', 'my_username');
    </span></span><span><span>define('DB_PASSWORD', 'my_password');
    </span></span><span><span>define('DB_NAME', 'my_database');
    </span></span><span>
    </span><span><span>/**
    </span></span><span><span> * Authentication data for access to DBV itself
    </span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
    </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
    </span></span></span><span><span> */
    </span></span><span><span>define('DBV_USERNAME', 'my_username');
    </span></span><span><span>define('DBV_PASSWORD', 'my_password');
    </span></span><span><span>?></span></span>
    로그인 후 복사
    로그인 후 복사
    또는 가상 호스트를 정의한 경우 URL에 액세스하여. 이것은 다음과 유사한 인터페이스를 제공합니다.

    위의 스크린 샷에서 현재 config.php에 제공 한 데이터베이스에있는 테이블이 표시됩니다. 특정 테이블이 현재 데이터베이스에 있는지 여부와 현재 테이블이 파일 시스템에 저장되었는지 여부를 표시하는 ON 디스크를 표시하는 DB 필드도 있습니다. 이 정보를 사용하면 현재 데이터베이스의 최신 사본이 있는지 여부를 알 수 있습니다. DBV로 작업 할 때 기억해야 할 중요한 사항은 데이터베이스의 로컬 사본에 대한 변경 사항이 소스 컨트롤에 커밋 할 수있는 로컬 사본이 있어야한다는 것입니다. 즉, 데이터베이스에서 새 테이블을 만들면 디스크로 내보내야합니다. 디스크로 내보낸 모든 테이블은 DBV 설치의 데이터/스키마 디렉토리에 저장됩니다. 아래의 스크린 샷에서 현재 파일 시스템에 TBL_LEADINFO 테이블이없는 것을 볼 수 있습니다.
    <span>config.php
    </span><span>.buildpath
    </span><span>.project
    </span><span>.settings</span>
    로그인 후 복사
    로그인 후 복사

    새로 생성 된 테이블을 디스크로 내보낸 후 버전 제어에 커밋해야합니다.
    <span>my_project/dbv</span>
    로그인 후 복사
    로그인 후 복사
    그러면 중앙 저장소로 밀어 넣을 수 있습니다 :

    이 시점에서 팀 동료들에게 데이터베이스에서 새 테이블을 만들었고 이미 Central Repo로 푸시했다고 말할 수 있습니다. 이제 그들은 단지 그것을 로컬 사본으로 끌어 당길 수 있습니다.
    <span><span><?php
    </span></span><span><span>/**
    </span></span><span><span> * Your database authentication information goes here
    </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
    </span></span></span><span><span> */
    </span></span><span><span>define('DB_HOST', 'localhost');
    </span></span><span><span>define('DB_PORT', 3306);
    </span></span><span><span>define('DB_USERNAME', 'my_username');
    </span></span><span><span>define('DB_PASSWORD', 'my_password');
    </span></span><span><span>define('DB_NAME', 'my_database');
    </span></span><span>
    </span><span><span>/**
    </span></span><span><span> * Authentication data for access to DBV itself
    </span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
    </span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
    </span></span></span><span><span> */
    </span></span><span><span>define('DBV_USERNAME', 'my_username');
    </span></span><span><span>define('DBV_PASSWORD', 'my_password');
    </span></span><span><span>?></span></span>
    로그인 후 복사
    로그인 후 복사

    다음으로 팀 메이트에게 DBV 페이지 (http : // localhost/your_project/dbv)를 방문하도록 지시하십시오.

    팀 메이트는 아마도 다음과 비슷한 화면을 가질 것입니다.
    <span>config.php
    </span><span>.buildpath
    </span><span>.project
    </span><span>.settings</span>
    로그인 후 복사
    로그인 후 복사

    이 시점에서 그는 TBL_TASKS 테이블 옆에 확인란을 선택하고 '데이터베이스로 푸시'버튼을 클릭 할 수 있습니다. 이것은 데이터베이스에서 tbl_tasks 테이블을 생성합니다 그리고 이것이 DBV로 작업하기위한 워크 플로입니다. 아주 쉽지 않습니까? 그러나 현재 데이터베이스 스키마를 변경해야한다면 어떻게해야합니까? 아마도 필드를 놓치거나 팀에 배포하기 전에 특정 테이블에 추가하는 것을 잊었을 수도 있습니다. 그곳에서 개정이 나오는 곳입니다
    개정 당신이 나와 같고 스키마 업데이트 (새 필드 추가, 필드를 제거하고 데이터 유형을 업데이트 한 등)를 시도한 경우 DBV가 다음을 알지 못한다는 것을 알 수 있습니다. 기본. 이러한 변경의 경우 개정 파일을 작성해야합니다. DBV 설치의 데이터/개정 디렉토리에서 새 폴더를 작성하여이를 수행 할 수 있습니다. 폴더 이름 지정에 대한 컨벤션은 숫자를 사용하고 있습니다. 따라서 처음 개정을 할 때 폴더 이름은 1이면 다음에 2 등이됩니다. 개정은 전체 데이터베이스에 적용 할 수있는 변경 사항입니다. 즉, 하나 이상의 테이블의 구조를 자유롭게 수정할 수 있지만 단일 테이블 만 변경하고 개정을 수행하는 것이 좋습니다. 이것은 귀하와 귀하의 팀이 변경 사항을 쉽게 관리하고 나중에 이해하는 것입니다. 이 관행에 대한 유일한 예외는 변경이 서로 관련 될 때입니다. 이 경우 해당 변경 사항을 한 번의 개정판으로 정리하는 것이 합리적입니다.

    TBL_USERS 테이블 내부에 새 필드를 만들어 봅시다.

    다음 DBV 설치에서 Data/Revisions/1 디렉토리에서 새 파일을 생성하고 방금 실행 한 쿼리를 내용으로 넣습니다. 파일 tbl_users.sql의 이름을 지정하십시오. 여기의 컨벤션은 수정 된 테이블의 이름을 개정 파일의 이름으로 사용하고 있습니다. DBV를 사용한 데이터베이스 버전 둘 이상의 테이블을 수정하는 경우 각 테이블에 대해 별도의 파일을 만듭니다.

    그 후 새 파일을 소스 컨트롤에 커밋 할 수 있습니다.

    그런 다음 중앙 저장소로 밀어 넣으십시오 :

    다시 팀 동료들에게 특정 변화에 대해 알릴 수 있습니다. 데이터베이스를 변경할 때 커뮤니케이션이 중요합니다. 당신은 당신의 팀의 모든 사람이 당신과 같은 페이지에 있는지 확인하고 싶습니다.

    이제 브라우저에서 DBV에 액세스하면 이제 개정판을 볼 수 있습니다. 지금해야 할 일은 개정판 옆에 확인란을 체크인 다음 '선택된 개정 실행'버튼을 클릭하는 것입니다. 이것은 당신의 변경 사항을 로컬 데이터베이스 사본으로 제공합니다.

    결론 DBV는 데이터베이스 버전 제어 요구를 쉽게 관리하는 좋은 방법입니다. 이를 통해 귀하와 귀하의 팀은 데이터베이스의 변경 사항을 쉽게 추적 할 수 있습니다. 또한 GIT 사용을 통해 다른 팀과 변경 사항을 쉽게 공유 할 수 있습니다. 이렇게하면 모든 사람이 항상 데이터베이스의 최신 사본을 갖도록합니다. DBV를 사용한 데이터베이스 버전 이 기사에서는 GIT와 함께 DBV를 사용하는 것을 살펴 보았지만 원하는 버전 제어 시스템을 거의 사용할 수 있습니다. 피드백? 아래의 의견에 맡기십시오!

    데이터베이스 버전에 자주 묻는 질문

    데이터베이스 버전의 주요 이점은 무엇입니까?

    데이터베이스 버전은 몇 가지 이점을 제공합니다. 첫째, 데이터베이스 스키마에 대한 모든 변경 사항에 대한 과거 기록을 제공하며, 이는 디버깅 및 감사 목적으로 유용 할 수 있습니다. 둘째, 오류 또는 문제의 경우 쉽게 변경을 롤백 할 수 있습니다. 셋째, 모든 사람이 동일한 버전의 데이터베이스로 작업 할 수 있도록 팀 구성원 간의 협업을 용이하게합니다. 마지막으로, 특히 분산 개발 환경에서 데이터베이스의 일관성과 무결성을 유지하는 데 도움이됩니다.

    데이터베이스 버전 설정은 실제로 어떻게 작동합니까? 실제로 데이터베이스 버전화는 버전 이력을 유지 관리하는 데 도움이됩니다. 데이터베이스 스키마 이것은 일반적으로 Git과 같은 버전 제어 시스템을 사용하여 수행됩니다. 데이터베이스 스키마로의 각 변경 사항은 버전 제어 시스템의 새 버전으로 커밋됩니다. 그런 다음이 버전은 필요에 따라 다양한 환경 (개발, 테스트, 프로덕션 등)에서 데이터베이스 스키마를 업데이트하는 데 사용됩니다.

    데이터베이스 버전 작성에 사용할 수있는 도구는 무엇입니까?

    몇 가지가 있습니다. 데이터베이스 버전 작성에 사용할 수있는 도구. 인기있는 것 중 일부에는 Liquibase, Flyway 및 Dbmaestro가 있습니다. 이 도구는 자동 스키마 업데이트, 롤백 기능 및 여러 데이터베이스 유형에 대한 지원과 같은 기능을 제공합니다. 도구의 선택은 개발 팀의 특정 요구 사항과 선호도에 따라 다릅니다.

    데이터베이스 버전화 구현에있어 어떤 과제는 무엇입니까?

    데이터베이스 버전화 구현은 몇 가지 이유로 인해 어려울 수 있습니다. 첫째, 개발 프로세스의 변화가 필요하므로 관리하기 어려울 수 있습니다. 둘째, 데이터 손실이나 손상을 피하기 위해 데이터베이스 마이그레이션을 신중하게 처리해야합니다. 마지막으로 데이터베이스 스키마와 변경 사항을 잘 이해해야합니다. 데이터베이스 버전화가 민첩한 개발에 어떻게 도움이 될 수 있습니까?

    애자일 개발에서는 자주 그리고 빠르게 변화가 이루어집니다. 데이터베이스 버전화는 모든 변경 사항에 대한 역사적 기록을 제공하고 변경의 쉬운 롤백을 용이하게하며 다양한 환경에서 일관성을 보장함으로써 이러한 변경 사항을 효과적으로 관리하는 데 도움이됩니다. 이것은 개발 프로세스의 민첩성과 효율성을 크게 향상시킬 수 있습니다.

    데이터베이스 버전화는 DevOps와 어떻게 관련됩니까?

    데이터베이스 버전화는 지속적인 통합 및 지속적인 배포를 가능하게하기 때문에 DevOps의 핵심 구성 요소입니다. 데이터베이스 변경의 (CI/CD). 데이터베이스 스키마의 버전 기록을 유지함으로써 다양한 환경에서 변경 사항을 자동화하여 DevOps 프로세스의 속도와 효율성을 향상시킬 수 있습니다.

    클라우드 데이터베이스와 함께 데이터베이스 버전을 사용할 수 있습니까?

    . 예, 데이터베이스 버전 작성은 클라우드 데이터베이스와 함께 사용할 수 있습니다. 대부분의 데이터베이스 버전화 도구는 클라우드 데이터베이스를 포함한 광범위한 데이터베이스 유형을 지원합니다. 그러나 구체적인 기능과 기능은 도구 및 클라우드 데이터베이스 유형에 따라 다를 수 있습니다.

    데이터 거버넌스에서 데이터베이스 버전 작성의 역할은 무엇입니까?

    데이터베이스 버전화는 중요한 역할을합니다. 데이터베이스 스키마의 무결성과 일관성을 보장하여 데이터 거버넌스. 감사 및 규정 준수 목적에 유용 할 수있는 모든 변경 사항에 대한 역사적 기록을 제공합니다. 또한 효과적인 데이터 거버넌스에 필수적인 팀 구성원 간의 협업 및 커뮤니케이션을 용이하게합니다.

    데이터베이스 버전이 데이터베이스 성능을 향상시키는 방법은 무엇입니까?

    데이터베이스 버전 자체가 데이터베이스 성능을 직접 개선하지는 않지만 IT. 스키마 변경에 대한 기록적인 기록을 제공하여 성능 문제를 식별하는 데 도움이 될 수 있습니다. 디버깅 및 성능 튜닝에 유용 할 수 있습니다. 또한 데이터베이스 스키마의 일관성과 무결성을 보장함으로써 더 나은 데이터베이스 성능에 간접적으로 기여할 수 있습니다.

    데이터베이스 버전 작성의 모범 사례는 무엇입니까?

    데이터베이스 버전 작성에 대한 모범 사례 중 일부는 무엇입니까? 포함 : 버전 제어 시스템을 사용하여 데이터베이스 스키마의 버전 기록을 유지 관리합니다. 각 변경 사항을 새 버전으로 커밋합니다. 배포 전에 각 버전을 철저히 테스트합니다. 스키마 업데이트 및 롤백에 자동화 된 도구 사용; 팀원들 사이에서 좋은 의사 소통과 협력을 유지합니다

위 내용은 DBV를 사용한 데이터베이스 버전의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿