문제

몇 주가 지났는데, 소프트웨어 패치에서 데이터베이스 변경을 관리하는 방법에 대한 자세한 설명을 찾으려고 노력하고 있습니다.

상황:

  • WPF 응용 프로그램 릴리스를 사용자에게 배포합니다. App은 App의 데이터 저장에 MSSQL 데이터 파일을 사용합니다 (클라이언트 프로파일 및 SQLServer Compact 3.5 전제 조건으로 배포)
  • 추가 개발 데이터베이스 스키마 변경에서 추가 데이터도 추가합니다.
  • Visual Studio 2008 Publishing 및 MSI로 패치/마이너/메이저 업그레이드를 실행하려고합니다.

사용자 앱 및 데이터베이스 파일을 업데이트하고 싶지만 해당 데이터베이스에 저장된 데이터는 터치하지 않습니다. 쉬운 것처럼 보이지만 웹에서 찾지 못한다. 비주얼 스튜디오 출판으로 이것을 완료하는 방법

지금까지 수집 한 것은 두 가지 선택입니다.

  • 각 릴리스에 대한 SQL 업데이트 스크립트를 만들고 패치 후 1st 프로그램 시작에서 업데이트 데이터베이스를 시도하십시오.
  • 데이터베이스 설정 프로젝트를 만들고 거기에서 스크립트를 시도하십시오 (이를 수행하는 방법은 모릅니다).

여러분 중 일부가 사용하거나 그러한 경우를 사용하는 것을 듣게되어 기쁩니다. 예제/상세한 설명에 대한 일부 링크가 Todo가 어떻게 굉장한 지 설명합니다. 나는이 배포/데이터베이스 물건을별로 잘하지 못한다 ... 아직 ... :)

미리 감사드립니다.

도움이 되었습니까?

해결책

이 기사는 "".NET의 Rails 스타일 데이터베이스 마이그레이션"유용 할 수 있습니다. 철도의 부상 이후 다른 언어와 플랫폼에서 활용할 수있는 데이터베이스 마이그레이션에 대한 모범 사례에 대한 많은 작업이있었습니다.

다른 팁

현재 프로젝트에서는 Continuous Database Integration이라는 기술을 사용합니다.

우리는 모든 SQL 변경 스크립트 (테이블을 작성 / 변경, 저장 프로 시저뿐만 아니라 데이터 등을 마이그레이션 할 수있는 등을 AC# 프로젝트에 수집하여 나머지 소프트웨어와 동시에 배포합니다.

이 기술을 사용하여 Visual Studio 빌드 시스템에 통합되어 있으므로 모든 개발자 데이터베이스가 최신 상태인지 확인할 수 있습니다.

로컬 빌드 및 배포를 위해이 MSBuild 스크립트를 실행합니다. DateBase에서 버전 번호를 확인하고 더 높은 스크립트를 실행합니다.

나는 MSBuild를 좋아하지는 않지만 일을 끝냅니다.

Martin Fowler는 기사를 가지고 있습니다 진화 데이터베이스 설계 이것에 대한 배경 지식이 있습니다.

SQL Server Management Studio를 사용하여 변경 사항을 작성하는 경우 "변경 스크립트 생성"을 사용하여 변경 사항을 스크립트 할 수 있습니다.

설치자 클래스를 DLL 또는 EXE에 추가하면 설정 중에 설치 메소드가 호출됩니다 (자세한 내용은 MSDN을 확인하십시오. VS는 귀하를 위해 미니 설정 PROJ를 만들 수 있습니다. 그런 다음 CE 및 기존 CE 파일을 백업하는 SQL 명령을 실행하고 무언가 잘못되면 롤백을 수행 할 수 있습니다 (설치 프로그램 클래스는 전체 설정 수준에서 전체 트랜 니닝 단계를 수행하는 방법이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top