Die DbUp-Variablensubstitution funktioniert scheinbar nicht
Posted: 27 Dec 2024, 13:03
Ich habe den folgenden Upgrader konfiguriert:
Mit einem SQL-Skript wie:
Ich kann den Upgrader-Ergebnissen entnehmen, dass die Variablenersetzung nicht einmal stattfindet, sondern nur den $UsersMetaDataConstraintName$ zu enthalten scheint.
Code: Select all
var upgrader =
DbUp.DeployChanges.To
.SqlDatabase(new MicrosoftDataSqlClientConnectionManager(connection))
.WithScriptsEmbeddedInAssembly(ThisAssembly, filter: scriptName => performRegex(scriptName).Success)
.WithVariablesEnabled()
.WithVariables(new System.Collections.Generic.Dictionary
{
{"UsersMetaDataConstraintName", usersMetaDataConstraintName ?? string.Empty}
})
.LogToConsole()
.Build();
Code: Select all
IF (LEN('$UsersMetaDataConstraintName$') > 0)
BEGIN
ALTER TABLE UsersMetadata DROP CONSTRAINT $UsersMetaDataConstraintName$
GO
END
ALTER TABLE UsersMetadata ALTER COLUMN UserId NCHAR(6) NOT NULL;
GO
ALTER TABLE UsersMetadata ADD CONSTRAINT PK_UserId PRIMARY KEY (UserId)
GO