2015-01-08 15 views
5

Próbuję przywrócić bazę danych serwera sql z pliku .bak (plik kopii zapasowej bazy danych) przy użyciu instalatora wix 3.9. Ale niestety to się nie dzieje. Oto moje kody próbyJak przywrócić bazę danych z pliku .bak (kopia zapasowa bazy danych) w instalatorze wix 3.9

<Fragment> 
    <Binary Id="PHRBackupBin" SourceFile="Database/PHR.bak"></Binary>  

    <!--<util:User Id="SQLUserSA" Name="[DB_USER]" Password="[DB_PASSWORD]"></util:User>--> 
    <util:User Id="SQLUserSA" Name="sa" Password="sa"></util:User> 

<DirectoryRef Id="INSTALLFOLDER"> 
    <Component Id="SqlComponent" Guid="8A1C82DB-1DD3-4FB5-8600-4F370FE1E04B"> 
     <Condition>NOT Installed</Condition> 
     <sql:SqlDatabase Id="SqlServerDatabase" Database="PHR" Server="." CreateOnInstall="yes" DropOnUninstall="yes" User="SQLUserSA" ContinueOnError="no" Instance="SQLEXPRESS">   
     <sql:SqlScript Id="PHRBackup" ExecuteOnInstall="yes" ExecuteOnUninstall="no" BinaryKey="PHRBackupBin" ContinueOnError="no" /> 
    </sql:SqlDatabase> 
    <CreateFolder/> 
    </Component> 
</DirectoryRef> 

<ComponentGroup Id="DatabaseConfiguration"> 
    <ComponentRef Id="SqlComponent"></ComponentRef> 
</ComponentGroup> 

Powyższy instalator przebiega pomyślnie, jeśli zastąpić plik z .sql (skrypt SQL) plik. Próbowałem też napisać plik skryptu, aby przywrócić bazę danych, ale bez powodzenia. Czy mogę prosić społeczność o uruchomienie pliku .bak z instalatora wix?

góry dzięki

+0

Czy spróbować zwyczaj kation wykonać do przywróconej bazy danych? 1) dodaj akcję niestandardową, przekaż cofniętą lokalizację pliku, a wewnątrz niestandardowej akcji wpisz kod C#, aby przywrócić bazę danych na serwerze. –

Odpowiedz

0

Niestety, nie będzie w stanie przywrócić go przy użyciu pliku bak. To nie jest skrypt (wymagany dla komponentu sql: SqlScript), jest to plik kopii zapasowej, który jest inny.

Plik .bak to zwykle macierzysty plik kopii zapasowej utworzony w SQL Server.

Plik .sql jest skryptem, a nawet może być zrzutem mySQL, który po uruchomieniu wydaje się przywracaniem, chociaż technicznie tworzyłby nowy db.

Zostało to potwierdzone w dokumentacji wix: http://wixtoolset.org/documentation/manual/v3/xsd/sql/sqlscript.html

Powiązane problemy