문제

데이터베이스 소스 컨트롤을 구현하려고합니다.

필요한 도구는 데이터베이스의 각 객체에 대해 별도의 파일을 만들어야하며, 바람직하게는 폴더로 배열되어 있습니다.

저장 프로 시저 기능 테이블 뷰

그리고 여러 구성 테이블의 데이터 변경 사항을 추적하기 위해 특정 쿼리의 결과를 덤프 할 수있는 것이 좋습니다.

이런 종류의 물건을 처리 할 수있는 도구가 이미 있는지 궁금합니다 ...

--

몇 가지를 정리하기 위해 ...

이미 업데이트 스크립트를 처리하기 위해 SQL Delta를 사용하고 있습니다 ...

전복과 함께 사용하기 위해 DB 스크립트를 갖고 싶습니다. 따라서 업데이트 스크립트를 연구하지 않고도 각 커밋마다 변경된 객체를 추적 할 수 있습니다 ...

SQL 분산 관리 객체 (SQL-DMO)가있는 멋진 VB 스크립트를 개발하고 있습니다.

내 자신의 솔루션을 갖는 데있어 좋은 점은 쿼리 또는 저장 프로 시저 실행의 출력을 포함하여 특정 테이블의 변경 사항, 서버 구성, 데이터베이스의 성장, 텍스트 파일에 덤프 할 수있는 모든 것을 포함시킬 수 있다는 것입니다. ...

올바른 솔루션이 없습니다

다른 팁

나는 사용한다 ScriptDB 정확히이 목적을 위해. 내가 변경해야 할 유일한 것은 생성 된 파일에서 스크립팅 날짜를 제거하는 것입니다. 그렇지 않으면 파일은 항상 전복으로 변경된 것으로 표시됩니다.

다음은 내가 사용하는 배치입니다. svnclient는 CodePlex의 도구입니다 svncompletesync.codeplex.com, 폴더에서 Subversion으로 모든 파일을 확인하려면 : :

svn checkout "http://svn/myproject" D:\Projekte\db_svn\myproject

ScriptDB "D:\temp\scriptdb" myserver mydb mylogin mypwd

del "D:\Projekte\db_svn\myproject\Schema Objects\\*.sql" /q /s

xcopy "D:\temp\scriptdb\myserver\mydb\Schema Objects\\*.sql" "D:\Projekte\db_svn\myproject\Schema Objects" /e /y /i

svnclient "D:\Projekte\db_svn\myproject" -m "commit durch svncompletesync"

내가 올바르게 이해하면 두 가지가 필요합니다. 먼저 데이터베이스 메타 데이터 (테이블, 뷰, 저장 Procs 등)에서 스크립트를 생성해야하며,이 작업이 완료되면 스크립트 버전 작성에 일관된 방법론을 사용해야합니다. .

이미 데이터베이스에 메타 다트와 데이터가 있다면, 당신이 무엇을 방해 할 것인지 알 수 없습니다. SQL 관리 스튜디오 사용 (또는 SQL Enterprise Manager) 스크립트를 생성합니다 데이터베이스 개체에서 : 참조 방법 : 스크립트 생성 (SQL Server Management Studio). 이것은 SQL Server 2000, 2005 등에서 작동해야합니다. 스크립트 생성 설정을 사용자 정의 할 수 있으며, 예를 들어 하나의 거대한 스크립트 대신 각 객체에 개별 스크립트를 사용할 수 있습니다. 데이터로 테이블을 채우려면 일부 스크립트를 작성해야 할 수도 있습니다 (마법사가 데이터 추출을 지원하는지 확실하지 않음).

일단 스크립트를 얻으면 특정 폴더 사이에 수동으로 배포해야하며이 작업이 완료되면 소스 컨트롤에서 확인할 준비가되어 있어야합니다. 이 시점부터 후속 데이터베이스 설치, 업그레이드 및 수리에 대한 방법론을 파악해야합니다. 이것은 다소 복잡한 작업으로 간단한 답변보다 오래 걸리는 다소 복잡한 작업입니다. 가능한 옵션에 관심이 있으시면 데이터베이스 설치 프로그램이 개정되었습니다 다수의 접근 및 참조를 언급 한 게시물 몇 가지 기사 주소 데이터베이스 버전화 (자기 홍보에 대해 죄송하지만 동일한 정보를 반복하고 싶지는 않습니다).

이 분야의 대부분의 도구는 무료가 아니지만 오픈 소스 프로젝트가 있습니다. ScriptDB, 스크립트 생성에 대한 귀하의 요구를 충족시킬 수 있습니다.

이것은 적절한 순서로 스크립트를 데이터베이스에 적용하는 방법의 문제를 해결하지 못합니다. 지불하고 싶지 않다면 자신의 개선을해야 할 수도 있습니다.

당신은 시도 할 수 있습니다 마법사, 이것이 바로 당신이 요구하는 것이 아니라 여전히 데이터베이스 변경 관리를 처리하는 데 도움이 될 수 있습니다. 데이터베이스 스키마를 리버스 엔지니어링 한 다음 특수 플랫폼 독립적 인 DSL에 소위 "마이그레이션"을 작성할 수 있습니다.

version 20090331140131:
    oxite_FileResource:
        FileResourceID type => PK, primary-key => true
        SiteID type => Guid, nullable => false
        FileResourceName type => LongName
        CreatorUserID references => oxite_User
        Data type => Binary
        ContentType type => AnsiString, length => 25, nullable => false
        Path type => String, length => 1000, nullable => false
        State type => Byte, nullable => false
        CreatedDate type => DateTime, nullable => false
        ModifiedDate type => DateTime, nullable => false 

    oxite_UserFileResourceRelationship:
        UserID references => oxite_User
        FileResourceID references => oxite_FileResource:
            add index unique => true

        index "" columns => [UserID, FileResourceID], unique => true, clustered => true
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top