문제

개발 프로젝트에서 SVN을 사용한 경험이 적으며 관계형 데이터베이스에 대한 경험이 거의 없습니다. 나는 테이블과 SQL 문과 같은 기본 개념을 알고 있지만 전문가는 아닙니다.

내가 알고 싶은 것은 SVN과 같은 일반 버전 제어 유형 시스템이 있지만 파일이 아닌 데이터베이스에서 작동하는지 여부입니다. 분기를 만들고 태그를 만들고 가지를 병합하는 능력과 같은 SVN에서 얻는 것과 동일한 종류의 기능을 원합니다. 개정 번호가 파일 리포지토리 버전에 연결되는 대신 데이터베이스 버전과 연결됩니다.

실제 데이터베이스 스키마와 독립적으로 이러한 종류의 기능을 추가 할 수있는 일반 솔루션을 사용할 수 있습니까? MySQL 또는 MS SQL Server와 함께 작동하는 솔루션에 관심이 있습니다.

또한 스키마가 아닌 데이터를 제어하려고한다는 것을 분명히해야합니다. 스키마가 일정하게 유지 될 것으로 기대합니다. 따라서 실제로 모든 삽입, 업데이트 및 삭제 요청의 로그를 작성하는 방법을 원하는 것 같습니다. 각 버전의 데이터간에 데이터베이스를 보냈습니다. 이렇게하면 원하는 버전에 저장된 모든 SQL 문을 재현하여 모든 버전을 재현 할 수 있습니다.

도움이 되었습니까?

해결책

모든 DDL, 저장 프로 시저 등을 정규 텍스트 파일로 스크립트 할 수 있습니다.

그런 다음 데이터베이스 버전화에 SVN을 사용할 수 있습니다.

다른 팁

나는 전복뿐만 아니라 작동하는 솔루션을 찾지 못했지만 여기에 내가 한 몇 가지 일이 있습니다.

  1. 스키마를 생성하고 초기 데이터를 채우는 스크립트를 작성하십시오. 그런 다음 그 후 각 변경에 대한 업데이트 스크립트를 만드십시오. 상당히 수동 프로세스이지만 작동합니다. DB의 테이블에 현재 버전 번호를 저장하고 스크립트가 Idempotent.

  2. 전체 개발 DB를 전복에 저장하십시오. 데이터가 많거나 자주 변경되는 경우 일반적으로 나에게는 너무 잘 작동하지 않습니다. 그러나 일부 프로젝트에서는 효과가 있습니다.

버전 제어 시스템에서 스크립트 생성을 유지하고 유지합니다.

내가 생각할 수있는 두 가지가 있습니다.

  • http://www.liquibase.org/ - 일반적으로 데이터베이스 변경을 관리하는 방법을 제공합니다. 소스 제어에 커밋되는 파일을 생성하고 다양한 개발 데이터베이스 등의 변경을 관리하는 데 도움이됩니다.
  • http://www.viget.com/extend/backup-your-database-in-git/ - 데이터베이스를 소스 제어로 백업하기위한 전략을 설명하지만 스키마에서만 동일한 전략을 사용할 수 있습니다. 이 체계에서 데이터베이스는 기본 코드와 별도의 영역에 있습니다. (이것은 다른 소스 제어 시스템과 함께 사용할 수 있습니다.)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top