1

SQL Server 및 Visual Studio를 사용하고 있습니다. CCNET을 통해 자동 빌드가 있습니다. SVN에서 코드를 커밋 할 때 자동 빌드가 실행되고 모든 단위 테스트는 조롱/스텁 된 데이터로 실행됩니다.자동 빌드 전에 데이터베이스 변경 배포/실행

현재 자동으로 실행되지 않는 유일한 작업은 데이터베이스 변경/스크립트를 실행하는 것입니다. 수동으로 수행합니다. 아무도 이것이 어떻게 자동화 될 수 있는지에 대한 조언을 얻었습니까?

답변

2

자발적으로 데이터베이스 변경 스크립트의 실행을 자동화해야합니다. 실행 대상을 어떻게 결정할 것인지에 대한 도전입니다. 데이터베이스에 스키마 버전을 저장하거나 데이터베이스 메타 데이터에 스키마 버전을 저장하고 이에 따라 실행할 스크립트를 선택해야합니다. 데이터베이스를 처음부터 다시 시작하거나 적절한 변경 사항을 적용해야합니다. 업그레이드를 할만큼 똑똑

How to create "embedded" SQL 2008 database file if it doesn't exist?

감안할 코드 :

내 솔루션은 코드에서 완전히 내 데이터베이스 스키마 관리를 넣어하는 것입니다, 나는 이것이 내가 지금까지했던 작성자의 가장 좋은 버전입니다 생각 애플리케이션에서 인라인 또는 자체 콘솔 앱에서 스키마를 자동화하면 스키마 변경 자동화 기능을 CI 빌드 스크립트에 통합 할 수 있어야합니다.

나는 위의 내용을 쓴 이래로 조금 더 자세히 쫓아왔다. 내가하고있는 일은 루비 마이그레이션 (Ruby Migrations)과 비슷하지 않다는 것을 알게되었다. 현재 스키마 변경을 역전시킬 수있는 "다운"기능이 있습니다 (잠재적으로 파괴적인 코드를 "라이브"로 만드는 것에 대한 관심이있는 흥미로운 아이디어). 유용하게 보이는 오픈 소스 .NET 프로젝트 Migrator.net이 있지만, 얼마나 적극적으로 유지되고 있는지 확실하지 않습니다.


부록 처음 등장했다 그들은 마이그레이션과 전진을 시작하고이 엔티티 프레임 워크 코드를 작성하기 때문에

- 그래서 지금은 좀 가치가있을 것입니다. 그러나 나는 그것의 꽤 아직 거기에 생각하지 않는다. 그리고 내가 보았던 몇 개의 다른 옵션이 그 단순하지 않은 것을 좋아한다. 내 패키지를 만들어서 사용할 수 있도록해야합니다!

2

여러 가지 방법으로 해결할 수 있습니다. 내가 많은 회사에서 사용한 접근법은 here이며 기본적으로 데이터베이스 업데이트를 자동화하고 hows와 whys에 대한 설명을 처리하는 소스 코드입니다.

Data Dude (Google 만 해당)를 사용하는 것이 좋습니다. 사용하지는 않았지만 데이터베이스 업데이트를 자동화하는 데 사용할 수 있습니다 (잘못되었을 수 있음).

저는 데이터베이스 비교 도구를 사용하여 스크립트를 생성하는 것을 권장하지 않습니다. 극도의주의를 기울이지 않고 말입니다. 문제는 대개 개발자 db (변경 사항이있는 곳)와 빌드 상자 db를 비교하는 것입니다. 그러나 db에는 작업중인 버그 수정 사항에 대한 다른 변경 사항이 포함될 수 있습니다. 에.

어쨌든 내가 말했듯이, 몇 가지 옵션을 조사하고 당신과 당신의 팀의 스타일에 가장 적합한 것을 선택하는 많은 방법이 있습니다.

해피 오토메이션 :-)