Używam SSDT (i sqlproj) dla naszych projektów MSSQL. Mamy kilka zmiennych, które musimy ustawić podczas publikowania w każdym środowisku.Jak zrobić SSDT Profile.xml SqlCmdVariable pusty ciąg lub opcjonalnie
Działa to świetnie w większości naszych środowisk, w których przypisujemy wartości do wszystkich zmiennych, ale kiedy publikujemy do naszej bazy danych na żywo, chciałbym móc uczynić DomainPrefix pustym ciągiem.
Kiedy próbuję zmienić Live.profile.xml ustawić DomainPrefix do żadnej wartości pojawia się błąd: „Wystąpił błąd podczas generowania planu wdrożenia Wdrożenie nie może kontynuować brakujących wartości dla następujących zmiennych Sqlcmd:.. DomainPrefix. "
To co chciałbym Live.profile.xml wyglądał:
<?xml version="1.0" encoding="UTF-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<TargetDatabaseName>DB_NAME</TargetDatabaseName>
<DeployScriptFileName>DB_NAME.sql</DeployScriptFileName>
<TargetConnectionString>CONNECTION_STRING</TargetConnectionString>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
<ItemGroup>
<SqlCmdVariable Include="DomainPrefix">
<Value></Value>
</SqlCmdVariable>
<SqlCmdVariable Include="Environment">
<Value>live</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
Czy ktoś wie jak ustawić SqlCmdVariable do pustej wartości lub sprawiają, że zmienna opcja?
Zastosowanie:
- VS 2013 sqlproj
- SqlPackage.exe uruchomić publikowania do DB z linii poleceń
W jaki sposób używasz DomainPrefix? Czy jest to część skryptów Pre/Post używanych w obiektach/kodzie, nazwach serwerów, czymś innym?Jeśli używasz tego tylko dla skryptów przed/po, możesz odpowiednio zmodyfikować te skrypty za pomocą sekcji dla Produkcji, która jest nieco inna. –
DomenaPrefix jest specyficznie używana w skrypcie pocztowym i mamy trochę kodu do obsługi - ale jest to również jedna z wielu zmiennych, które chcemy ustawić jako pusty ciąg, więc dobrze byłoby wiedzieć, czy istnieje sposób na zrobienie to puste/opcjonalne. – Saan
Nie jestem świadomy, jak to zrobić, dlatego chciałem upewnić się, że używasz go tylko w skrypcie Post. Możesz sprawdzić pewną wartość (np. "Prod") i uczynić ją pustą, jeśli tak jest i/lub utworzyć sekcję dla Produkcji. Myślę, że tworzenie MS nigdy nie uważa pustej zmiennej, ponieważ może to spowodować spustoszenie, jeśli zostanie użyte w kodzie, szczególnie w przypadku nazw DB. –