BlockOnPossibleDataLoss를 무시하고 sqlpackage.exe?


13

BlockOnPossibleDataLoss를 false로 설정 한 dacpac이 있지만 sqlpackage.exe로 실행할 때 배포가 차단되어 "[a] 열이 삭제되고 데이터 손실이 발생할 수 있습니다."라는 메시지가 표시됩니다.

그러나 정확히 동일한 배포 프로필을 사용하고 Visual Studio 2012에서 게시하면됩니다.

답변:


10

/p:BlockOnPossibleDataLoss=false명령 행에서 sqlpackage.exe를 실행 해 보셨습니까 ?

방금 SQLPackage.exe를 사용하여 테스트 데이터베이스의 .dacpac 파일을 만든 다음 /p:BlockOnPossibleDataLoss=false옵션으로 파일을 게시하고 데이터베이스를 덮어 썼습니다.


나는 그것을 시도했지만 도움이되지 않았다. 나는 문제를 조금 더 좁혔다. powershell 스크립트 내에서 패키지를 실행하고 try catch 블록 내에 있습니다. 플래그가 설정되어 있어도 sqlpackage.exe는 예외를 생성합니다 (그렇지 않을 것으로 예상됩니다)
nojetlag

1
이는 Visual Studio Team System 빌드에서 Azure Database에 대한 데이터베이스 배포 작업을 수행하는 동안 유용했습니다.
Dan Csharpster

2

마지막으로 문제를 발견했습니다. 오류 처리가 다음과 같이 설정된 powershell 스크립트 내에서 sqlpackage.exe를 실행합니다.

$Script:ErrorActionPreference = "Inquire"

문의를 얻지 못했기 때문에 문제가 sqlpackage.exe에 있다고 가정했지만 ErrorActionPreference가 설정된 후에 다른 powershell 스크립트가 포함되어 있었고 포함 된 스크립트에도 ErrorActionPreference가 설정되었지만 "중지"로 설정되었습니다. 여전히 BlockOnPossibleDataLoss = false로 설정하면 오류가 발생하지 않아야하지만 적어도 이제는 처리 할 수있는 방법이 있습니다.


2

나는 같은 문제가 있었고 / p : BlockOnPossibleDataLoss = false가 작동하지 않습니다.

최종 솔루션은 필자의 경우 프로젝트 파일의 디버그 설정에서도 설정해야한다는 것입니다.

프로젝트 디버그 설정

이것이 누군가를 돕기를 바랍니다! :)


직접 게시하는 경우 "고급"게시 옵션에서도이 옵션을 설정해야합니다.
Pac0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.