기존 데이터베이스를 업그레이드 할 때 가장 좋은 방법에 대한 질문입니다. 데이터 자체, 구조, 관계, 추가 열, 사라지는 열 등 모든 종류의 수정이있을 것이라고 가정합니다.(SQL Server) 데이터베이스를 업데이트하기위한 단계별 지침?
내 문제는 간단합니다. 나는 SQL Server를 사용할 프로젝트에서 일하고 있습니다. 문제는 없습니다. 전문가를 충분히 처리 할 수 있기 때문입니다. 하지만이 프로젝트는 나중에 업그레이드 될 것이므로 업그레이드 메커니즘이 뒤따라야하는 프로토콜을 지정해야합니다. 기본적으로,이 프로토콜은 업그레이드 스크립트를 생성 할 때 따라야 할 필요가 ...
는 지금, 나는 다음의 간단한 단계가 있습니다- 이 테이블에 새 열을 추가합니다.
- 새 열에 제약 조건을 추가하십시오.
- 새 테이블을 추가하십시오.
- 필요한 경우 제약 조건을 삭제하십시오.
- 제거해야 할 열을 버립니다.
- 제거해야하는 삭제 테이블.
어떻게 든이 목록은 불완전하다고 느낍니다. 업그레이드 중에 따라야 할 적절한 단계를 설명하는 확장 목록이 있습니까?
또한 단일 데이터베이스 트랜잭션 (SQL Server 사용) 내에서 항상 전체 업그레이드를 수행 할 수 있습니까? 아니면 하나의 트랜잭션을 종료하고 다른 트랜잭션을 시작해야하는 프로토콜 내에 포함되어야하는 중단 점이 있습니까?
자동화 된 도구는 멋진 자동 솔루션을 제공하지만 실제로 사용할 수는 없습니다. 이 시스템에서 작업하는 개발 팀은 로컬 시스템에 자체 데이터베이스가있는 4 명의 개발자가 있습니다. 모든 개발자는 구조 변경 및 데이터 변경에 대한 자체 수정을 위해 업그레이드 및 다운 그레이드 스크립트를 생성하여 구조에 대한 자체 업데이트를 추적하고 추적합니다. 이 스크립트는 다른 개발자가 자신의 시스템을 최신 상태로 유지하는 데 사용할 수 있습니다. 시스템이 출시 될 때마다 스크립트는 모두 하나의 큰 스크립트로 병합됩니다.
시스템은 이 아니며은 저장 프로 시저 또는 기타 "특수"기능을 포함합니다. 데이터베이스는 테이블과 관계가있는 데이터 저장소입니다. 역할 없음, 사용자 없음, 저장 프로 시저 없음, 트리거 없음, 복잡한 데이터 유형 없음 ...
사용자가 9에서 5로 작업하는 응용 프로그램에서 DB를 사용하므로 클라이언트 업그레이드를 포함하여 종료를 쉽게 수행 할 수 있습니다. 또한 데이터베이스에 버전 번호를 추가하면 응용 프로그램이 올바른 데이터베이스 버전에 연결되어 있는지 확인합니다.
개발하는 동안 모든 개발자는 완전히 제어 할 수있는 자체 데이터베이스 인스턴스를 사용합니다. 우리는 응용 프로그램을 사용하는 사용자가 아니기 때문에 더 이상 비싼 에디션이 아닌 Express 에디션 용으로 개발하는 경향이 있습니다. 솔직히 우리는 많은 사용자를 지원하는 응용 프로그램을 개발하지 않지만 사용자가 SQL Server를 사용하기 때문에 자신의 필요에 따라 더 큰 SQL Server 플랫폼에 시스템을 설치할 수 있음을 알립니다. 그들은 자신의 DBA가 필요합니다. 우리는 우리 자신의 웹 인터페이스에 사용되는 더 큰 SQL Server를 사용할 수 있지만이 서버는 우리가 아닌 우리를 위해 유지 관리되는 특별한 dataserver에 있습니다.
이 프로젝트는 이전에 MS Access를 데이터 저장소로 사용하고 단일 사용자 개발 용 이었지만 많은 사용자들이 여전히 데이터베이스를 공유하기로 결정했기 때문에 데이터 모델 자체가 멀티 - 사용자 환경. 그래서 우리는 SQL Server로 마이그레이션하여 3 명 이상의 사용자가있는 소규모 사무실과 동시에 500 명 이상의 사용자가있는 대규모 조직을 지원했습니다.
우리는 소프트웨어 비용을 낮게 유지해야하기 때문에 값 비싼 도구 나 비싼 서버에 많은 예산을 쓸 필요가 없습니다.
여러 개발자가 스키마를 공유하는 것과 관련하여 조만간 조만간 출시 될 SQL 소스 제어에주의를 기울여야 할 수도 있습니다. http://www.red-gate.com/products/SQL_Source_Control/index.htm. 이것은 SSMS에 통합되어 SQL과 함께 SQL Server 소스 제어 및 배포 솔루션과 비교할 수 있습니다 (면책 조항 : 저는 Red Gate의 제품 관리자로 일합니다) –
흥미롭게 들리 겠지만 첫 번째 릴리스는 Subversion 만 지원합니다. Vault를 직접 사용하고 있으며 서로 다른 두 가지 소스 제어 시스템을 사용하고 싶지 않습니다. 아직도, 좋다! :-) –
그래, 우리는 처음부터 하나 골랐어 요. 최근 Red Gate에서 Vault에서 SVN으로 옮겼습니다. 다음에 TFS 지원이 이어지며 사용자 피드백에 따라 다른 SCM에 대한 지원이 추가 될 수 있습니다. 그 동안 Red Gate에서 호스팅하는 SVN 서버를 사용하여 SQL 소스 제어를 평가할 수 있습니다. –