2011-03-16 4 views
1

sqlite 데이터베이스를 사용하는 .NET 응용 프로그램이 있습니다. 최신 버전에서는 스키마를 업그레이드해야합니다. 설치 프로그램에서 .NET 코드에서 sqlite 데이터베이스를 업그레이드하는 표준적인 관행이 궁금합니다. 우리는 Wix를 .NET 어셈블리에 구현 된 사용자 정의 액션과 함께 사용합니다.설치 프로그램의 .NET 코드에서 sqlite 데이터베이스를 업그레이드하는 일반적인 방법은 무엇입니까

감사합니다,

답변

4

WiX 및 InstallShield와 같은 도구는 SQL (WiX, InstallShield), Oracle (InstallShield) 및 MySQL (InstallShield - MySQL Connect 필요)을 기본적으로 지원합니다. MSI에는 기본 제품이 없으며 내가 알고있는 설치 프로그램의 선반 솔루션과 다른 제품은 없습니다.

당신은 분명히 자신의 (잘하면 데이터 기반) 사용자 지정 작업을 처리 할 수 ​​있지만, 나라면 응용 프로그램 계층에서 데이터베이스 서비스를 구현하는 것을 고려할 것입니다. 이렇게하면 설치 프로그램의 도움 없이도 응용 프로그램에 내결함성과 자체 서비스가 제공됩니다.

예를 들어 고객이 설치 프로그램을 업그레이드 한 다음 데이터베이스의 이전 버전을 복원하는 경우 응용 프로그램에서 새 스키마로 자체 업그레이드 할 수 있습니다.

1

접근 방법은은 diff SQL 스크립트를 생성 할 것이다 - 오래된 데이터베이스에 대해 그것을 실행 - 추가, 업데이트 또는을 변경할 수 있습니다 부분을 제거하여 일 업데이트 기존 스키마.

원본 스키마가 새 스키마로 변경되므로 충분해야합니다.

그런데 데이터는 어떻게됩니까? 데이터베이스 스키마가 변경된 경우 이전 데이터베이스 날짜를 이전해야 할 수 있습니다.

내가 잘못하지 않았다면 코드에서 그렇게하고 싶습니다. 이렇게하면 오래된 데이터베이스의 백업을 만들 수 있습니다. 이러한 백업을 만든 후에는 데이터 이전을 위해 스키마 업데이트 후 작업을 수행하고 마지막으로 백업을 제거 할 수 있습니다.

관련 문제