2010-12-07 2 views
2

스크립트를 만드는 방법은 알고 있지만 Windows 응용 프로그램이나 웹 응용 프로그램 내에서이 스크립트를 구현하는 방법을 알고 있습니까? 웹 응용 프로그램에 초점을Windows 및 Web App에서 데이터베이스 업그레이드를 처리하는 가장 좋은 방법은 무엇입니까?

, 나는이 같은 폴더에있는 모든 업그레이드 스크립트 : \ C# 버전으로 \ upgrade_1.4.99.sql, upgrade_1.4.101.sql 등

C# 코드 검사 현재 코드 데이터베이스 버전을 설치 각 SQL 스크립트를 순서대로 반복하고 스크립트를 실행합니다.

사용자가 관리자가 아닌 경우 업그레이드가 임박했다는 적절한 메시지를 표시합니다. 비슷한 기능 (사용자를 로그 아웃). 관리자 (우리)는 웹 페이지를 업그레이드하도록 리디렉션되고 각 스크립트의 실패 또는 성공을 표시하는 스크립트를 실행합니다. 실패는 SQL 트랜잭션을 롤백합니다.

우리는 기본적으로 하나의 웹 응용 프로그램 인스턴스를 여러 개 가지고 있으며 우리가 관리하는 데 사용하는 수동 업그레이드에 좌절감을 느낍니다.

가장 중요한 문제는 데이터 업그레이드였습니다 ... 정적 데이터 (구성 설정 등)와 같은 중요한 데이터 전송이 항상 누락되었습니다. 따라서 우리는 스키마 및 데이터 업그레이드 스크립팅에 RedGate를 사용합니다.

웹 사이트를 업그레이드하는 가장 좋은 방법은 위와 같습니다. Windows 응용 프로그램에 대해 동일한 프로세스를 사용할 수 있습니까?

또한 스크립트 파일을 읽는 내 방법을 개선 할 수 있다고 확신합니다. 우리는 단순히 SQL 파일의 각 텍스트 행을 읽고 "GO"를 기다린 다음이 문자열을 모두 처리하기 전에 배열에 저장합니다. (나는이 코드를 작성하지 않았다). 이 과정에는 하나의 큰 Begin and Commit Trans가 포함됩니다.이 권리가 있는지 아닌지 확실하지 않습니다.

여기에 질문이 너무 많아서 불편을 끼쳐 드려 죄송합니다.

+0

어떻게 당신의 과정은 바로 스크립트가 데이터베이스에 대해 실행되는 것을 보장합니까? 데이터베이스에 버전 번호를 표시 하시겠습니까? –

답변

1

당신은 실제로 SQL 서버에 대해 한 번에 전체 배치 스크립트를 실행할 수 있습니다

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/43e8bc3a-1132-453b-b950-09427e970f31

지금까지 무엇을 자동화 된 방식으로 모든 종류의에 업데이트를 실행하는 가장 좋은 방법으로? 나는 그것을하는 좋은 방법이 하나 있다고 생각하지 않습니다. 그것은 당신의 시스템에 가장 적합한 모든 것입니다. 이것은 말할 것도없이 가능한 한 별개의 환경에서 스크립트를 테스트해야합니다.

HTH, 브라이언

+0

그 웹 페이지를 보았습니다. 당신이 말했듯이 내가 확신 할 수없는 업데이트를 실행하는 가장 좋은 방법은 무엇입니까? 서버 객체를 생성하고이 메소드를 통해 모든 스크립트를 실행합니까? – Rob

+0

개인적으로 저는 항상 버전 당 하나의 스크립트가있는 팬이었습니다. 업데이트가 여러 버전을 거치는 경우 각 스크립트를 하나씩 실행하거나 함께 결합하여 한 번에 실행합니다. 개별적으로 실행하면 오류가 발생했을 때 어떤 버전의 스크립트가 오류인지 알 수 있습니다. –

관련 문제