2017-01-04 4 views
1

내 현재 프로젝트에 wix 설치 프로그램을 사용하여 데이터베이스를 복원해야합니다. 이전에는 문제가되었지만 DB의 5-38MB 크기의 스크립트를 작성하여 해결했습니다..bak에서 데이터베이스 복원

이제파일이 1GB 주위에 있고 .sql이 2.8GB인데 .sql을 프로젝트에 추가하려고 시도했지만 컴파일되지 않습니다.

이 문제를 해결할 수있는 방법에 대한 아이디어가 있으십니까?

RDBMS는 Microsoft SQL Server 2014 Express입니다.

따뜻한 안부 이에 대한

+0

* * 데이터베이스 시스템은 무엇입니까? –

+0

@ marc_s mssql 2014 express. –

답변

1

가장 좋은 방법은 디스크의 위치에 설치되는 CSV 파일로 데이터를 내보낼 bcp를 사용하여 다음 스키마 SSDT을 사용하는 것입니다. 그들이 거기에 일단 당신은 그 데이터 채우기 위해 SQL 대량 삽입 명령을 호출 할 sql:script 또는 sql:string 윅스 요소를 사용할 수 있습니다

bulk insert [Database].[dbo].[TableA] from C:\InstallLocation\TableA.Data.asc 

당신은 데이터가 올바른 순서로 수입되어 있는지 확인하려면 다음 중 하나를해야합니다 그렇게 FK 오류가 발생하거나 DB의 외래 키를 일시적으로 사용 중지하지 않는다는 사실을 기억하십시오. 012 :

이것은 실제로 설치 될 DB를 배포하는 매우 효율적인 방법입니다. 예를 들어 크기가 ~ 1Gb 인 db가 있고 표준 mszip 택시 압축 모드를 사용하면 설치 프로그램이 ~60MB가됩니다. 압축을 높게 전환하면 ~ 40Mb가됩니다 (그러나 빌드하는 데 꽤 오래 걸립니다!). 분명히 YMMV는 압축되는 데이터에 따라 다르지만 SQL 백업 또는 SQL 스크립트보다 훨씬 작습니다.

+0

흥미로운 접근법. 나는 아직도 윅스에 익숙해있어서 배운다. 내가 확인해 볼게. 게시 할 수있는 링크/리소스가 있으면 알려주십시오. 안녕 친구! –

+1

데이터베이스 복원 .BAK는 확실히 모범 사례가 아닙니다. MSSQL의 여러 버전과 버전으로 복원하려는 많은 문제를 보았습니다. 또한 그렇게하는 SCM 기록을 활용하지 않습니다. –

+0

@ChristopherPainter 당신이 당신의 대답을 상세히 설명해 주시겠습니까? .bak 파일을 사용하는 것이 가장 쉬운 해결책 인 것 같습니다. 또한 그것에 대해 당신은 무엇을 제안합니까 –