source

MySQL 데이터베이스에서 버전 제어(Git) 사용

lovecheck 2023. 2. 1. 21:53
반응형

MySQL 데이터베이스에서 버전 제어(Git) 사용

저는 WordPress Designer/Developer로 버전 관리, 특히 Git을 사용하는 데 점점 더 몰두하고 있습니다.단, 일부 프로젝트에서는 SVN을 사용하고 있습니다.저는 현재 리모트 레포에 Beanstalk를 사용하고 있습니다.

WordPress 파일을 모두 repo에 추가하는 것은 문제 없습니다.wp-config 파일을 .gitignore 할 수 있다는 것을 알고 싶다면.하지만 현재 개발자는 저뿐이고 이 프로젝트들은 비공개 소스이기 때문에 이치에 맞지 않습니다.

WordPress는 다른 CMS와 마찬가지로 데이터베이스에 크게 의존하여 텍스트 콘텐츠를 유지하고 사용하는 특정 플러그인/테마 구성에 따라 많은 설정을 유지합니다.가능하다면 데이터베이스에서 버전 관리를 사용하는 가장 좋은 방법이 무엇인지 궁금합니다.MySQL Server가 Windows에서 실행 중이지만 SQL 덤프를 실행한 다음 SQL 덤프를 저장소에 추가할 수 있습니다.하지만 라이브로 무언가를 푸시하면 엄청난 보안 위협이 됩니다.

이것을 하는 것이 용인되는 관행이 있나요?

git 저장소 내에서 데이터베이스를 백업할 수 있습니다.물론 데이터를 바이너리 형태로 git에 넣으면 git의 diff(변경)를 이용하여 데이터를 효율적으로 저장하는 기능이 모두 상실됩니다.가장 좋은 방법은 데이터를 텍스트 일련 형식으로 저장하는 것입니다.

mysqldump는 이 작업에 적합한 프로그램입니다.하지만 완벽하지는 않다.아이템의 시리얼화 순서를 방해하는 것이 있는 경우(예를 들어 새로운 테이블 작성 등의 결과), 인위적인 브레이크가 diff에 들어갑니다.스토리지 효율이 저하됩니다.커스텀 시리얼라이저를 작성하여 변경만을 시리얼화할 수 있지만, git가 이미 능숙하게 하고 있는 어려운 작업을 하고 있는 것입니다.그냥 sql dump를 사용해.

단, devs가 데이터베이스를 git에 넣는 것에 대해 이야기할 때 일반적으로 당신이 하고 싶은 것은 아니다.예를 들어 @egyal(codinghorror 링크)에 의해 게시된 링크를 읽으면 실제로 git에 배치되어 있는 것이 초기 데이터베이스를 생성하기 위해 필요한 스크립트임을 알 수 있습니다.데이터베이스 데이터를 클린 상태로 채우거나 테스트 데이터로 채우는 스크립트와 같은 추가 스크립트가 있을 수 있습니다.이러한 모든 SQL 스크립트는 텍스트 파일이며 mysqldump에서 얻을 수 있는 SQL 덤프와 거의 동일한 형식입니다.따라서 일상적인 데이터에서도 이 방법을 사용하지 못할 이유가 없습니다.

MySQL 및 MongoDB와 같은 버전 관리 데이터베이스에 사용할 수 있는 소프트웨어는 많지 않습니다.

하지만 하나는 개발 중이며 베타 버전이 곧 출시될 예정입니다.Klonio - 데이터베이스 버전 관리 확인

버전 컨트롤을 사용하여 로컬 원격 WordPress 블로그를 동기화하는 방법 기사에서는 Mercurial을 사용하여 WordPress 블로그의 두 인스턴스(개발, 프로덕션) 간의 동기화를 자동화하는 방법에 대해 설명합니다.이 시나리오에서 Git과 Mercurial은 매우 유사하다고 언급합니다.

스텝 4(데이터베이스 동기화)는 여기서 중요한 부분입니다.

데이터베이스 내용은 리비전 제어에 의해 추적되는 파일로 내보냅니다.변경 내용을 가져올 때마다 데이터베이스 내용이 이 파일로 대체되어 데이터베이스가 최신 상태로 유지됩니다.

그런 다음 충돌과 작업의 스크립팅 부분에 대해 자세히 설명합니다.

머큐리얼에 버전 관리 튜토리얼이 있어 잘 모르시겠지만

버전 관리 하에서의 스키마 변경에만 관심이 있다면 SqlRog가 좋습니다.Git 아래에 넣을 수 있는 프로젝트 파일에 스키마를 추출합니다.

Wordpress는 모든 뉴스 피드 콘텐츠를 데이터베이스에 저장하므로 변경하지 않더라도 콘텐츠가 많이 변경됩니다.

언급URL : https://stackoverflow.com/questions/13608706/using-version-control-git-on-a-mysql-database

반응형