오랜 시간 독자, 처음으로 asker!DACPAC에 포함 된 SQL 게시 스크립트가 아닌
저는 데이터베이스 코드에 대해 DACPAC을 배포하는 데있어 새로운 "DevOps"세계에서 한 번의 클릭만으로 완료해야하는 문제에 대해 두뇌를 집중 시켰습니다. 이것은 MSI 작성 내에서 가능해야하지만, 나는 그 기능을 추가하는 것을 얼굴이 파란다. 그래서 나는 그 일을 제어 할 수 있기 때문에 DACPAC에 유지할 것이다.
SQL이 아닌 게시 / 사전 배포 스크립트를 실행하는 방법을 알고있는 사람은 누구입니까? PowerShell 이상적이지만 처음에는 폴더 구조를 만들고 일부 파일을 이동해야합니다.
xp_cmdshell은 보안상의 이유로 문제가되지 않습니다.
나는 배치 후 자동으로 powershell을 실행 한 다음 SQL Server 작업을 작성하여 자동 삭제할 것을 고려했지만 너무 로비가 깔끔해 보인다.
모든 조언을 주시면 감사하겠습니다.
EDIT : SQLCMD 모드 지원
:! [지령
예컨대
:! MKDIR C : \ 테스트
불행하게도 비주얼 스튜디오 그래서 다시 드로잉 보드에 SQLCMD의 수준을 지원하지 않습니다.
어이가 답장을 보내 주셔서 감사합니다 에드되지 후 배포 할 dacpac를 클릭 한 경우 예, 전적으로 동의합니다. 전 PowerShell을 사용하는 사람입니다. 그래서 이상적인 방법은 임시 스크립트를 추가로 배포하는 것입니다.불행하게도 저는 많은 대형 컨설턴트가 과다 지불 한 컨설턴트가 주위에 춤을 추는 단어를 던져 버렸고, 허용하지 않는 경로를 따라갔습니다 (MSI에서이를 포장하고있는) 매우 큰 조직에서 일합니다. 필자는 2 주전에 제 통지서를 넘겨주었습니다. 그 이유는 저를 초조하게 만들었 기 때문에, 저는 이제 무엇보다도 요점을 증명할 수있는 해결책을 제시하려고합니다. – Ollie
Visual Studio에서 내 수정 사항이 작동하지 않으면 SQLCMD 모드에 대한 설명서를 찾았으며 다음 명령을 사용하여 실행할 수 있습니다 !! !! mkdir C : \ Test 그러나 Visual Studio는 모든 SQLCMD 기능을 지원하지 않습니다. 미래! – Ollie
msi가 끝난 후에 실행할 작업을 추가 할 수 없습니까? MSI에는 MoveFileAction이 있습니다. 진짜 못생긴/해키를 얻을 수 있다면 빌드 실행기, 배포 스크립트가 실행될 때 호출되는 sqlpackage와 관련된 특정 위치에 놓여 야하는 .net dll을 작성할 수 있습니다. 그러면 원하는대로 할 수 있습니다. 배포 전, 도중 또는 후에 배포 할 수 있습니다. 솔직하게 말하면, 몇 주 후에 떠나면 각기 다른 접근법과 이점을 문서화하고 다음 사람이 논쟁/외침 할 수 있도록 남겨 두십시오 :) 어쨌든 그들은 그것을 바꿀 것입니다. –