2016-12-06 9 views
1

자동 배포를 위해 ReadyRoll 프로젝트를 사용하려고합니다. 내가 만든 이전 프로젝트는 데이터베이스를 가져온 후 생성 된 첫 번째 마이그레이션 스크립트에서 다음과 같은 IF TYPE_ID (N '[dbo]. [abc_PrintType]') IS NULL입니다. 나는ReadyRoll 프로젝트 : SemVer Option

GO 
PRINT N'Print types' 
GO 
IF TYPE_ID(N'[dbo].[abc_PrintType]') IS NULL 
CREATE TYPE [dbo].[abc_PrintType] AS TABLE 
(...) 

답변

2

당신이 찾고있는 옵션은 오브젝트 존재를 확인 추가 이며, 코드의 같은 라인을 생성하는 프로젝트의 속성에서 확인할 수있는 옵션을 알고 싶어요.

<PropertyGroup> <!-- "Add object existence checks" SQL Compare option --> <SyncOptionIncludeExistenceChecks>True</SyncOptionIncludeExistenceChecks> </PropertyGroup>

당신이 변화를 가져올 다음에, 생성 된 스크립트가 포함됩니다

.sqlproj 파일 내에서 <Project> 노드 아래에 다음 코드를 추가하여 프로젝트에서 사용할 수 있습니다 IF EXISTS... 스타일 가드 절. 이 구성 방법에 대한

자세한 정보는 ReadyRoll 문서에서 찾을 수 있습니다 https://documentation.red-gate.com/pages/viewpage.action?pageId=42539778

+0

이 솔루션을 주셔서 감사합니다. 이 옵션을 점검 할 다른 방법이 없습니까? – dsingh23

+0

.sqlproj 파일에서 동일하게 설정했습니다. 저장된 모든 procs, 테이블이 이미 대상 데이터베이스에 존재하므로 이전 마이그레이션이 실행되지 않습니다. 내 대상 데이터베이스가 변경되었으므로 동일한 데이터베이스를 가져 오려고했습니다. 새로 고침을 수행 한 후 프로젝트에 '빌드 및 배포 필수'라고 표시되고 개체가 이미 대상 데이터베이스에 있으므로 프로젝트를 배포 할 수 없습니다. – dsingh23

+0

개체 차이를 볼 때 ReadyRoll 프로젝트에 특정 테이블이 표시되지 않습니다. 그러나 프로젝트를 배포 할 때 다음 표가 이미 존재한다는 오류가 발생합니다. – dsingh23