sqlite 데이터베이스를 사용하는 .NET 응용 프로그램이 있습니다. 최신 버전에서는 스키마를 업그레이드해야합니다. 설치 프로그램에서 .NET 코드에서 sqlite 데이터베이스를 업그레이드하는 표준적인 관행이 궁금합니다. 우리는 Wix를 .NET 어셈블리에 구현 된 사용자 정의 액션과 함께 사용합니다.설치 프로그램의 .NET 코드에서 sqlite 데이터베이스를 업그레이드하는 일반적인 방법은 무엇입니까
감사합니다,
sqlite 데이터베이스를 사용하는 .NET 응용 프로그램이 있습니다. 최신 버전에서는 스키마를 업그레이드해야합니다. 설치 프로그램에서 .NET 코드에서 sqlite 데이터베이스를 업그레이드하는 표준적인 관행이 궁금합니다. 우리는 Wix를 .NET 어셈블리에 구현 된 사용자 정의 액션과 함께 사용합니다.설치 프로그램의 .NET 코드에서 sqlite 데이터베이스를 업그레이드하는 일반적인 방법은 무엇입니까
감사합니다,
WiX 및 InstallShield와 같은 도구는 SQL (WiX, InstallShield), Oracle (InstallShield) 및 MySQL (InstallShield - MySQL Connect 필요)을 기본적으로 지원합니다. MSI에는 기본 제품이 없으며 내가 알고있는 설치 프로그램의 선반 솔루션과 다른 제품은 없습니다.
당신은 분명히 자신의 (잘하면 데이터 기반) 사용자 지정 작업을 처리 할 수 있지만, 나라면 응용 프로그램 계층에서 데이터베이스 서비스를 구현하는 것을 고려할 것입니다. 이렇게하면 설치 프로그램의 도움 없이도 응용 프로그램에 내결함성과 자체 서비스가 제공됩니다.
예를 들어 고객이 설치 프로그램을 업그레이드 한 다음 데이터베이스의 이전 버전을 복원하는 경우 응용 프로그램에서 새 스키마로 자체 업그레이드 할 수 있습니다.
접근 방법은은 diff SQL 스크립트를 생성 할 것이다 - 오래된 데이터베이스에 대해 그것을 실행 - 추가, 업데이트 또는을 변경할 수 있습니다 부분을 제거하여 일 업데이트 기존 스키마.
원본 스키마가 새 스키마로 변경되므로 충분해야합니다.
그런데 데이터는 어떻게됩니까? 데이터베이스 스키마가 변경된 경우 이전 데이터베이스 날짜를 이전해야 할 수 있습니다.
내가 잘못하지 않았다면 코드에서 그렇게하고 싶습니다. 이렇게하면 오래된 데이터베이스의 백업을 만들 수 있습니다. 이러한 백업을 만든 후에는 데이터 이전을 위해 스키마 업데이트 후 작업을 수행하고 마지막으로 백업을 제거 할 수 있습니다.