Installer: old to new update #5 - old to new update, wix sql fixes.

This commit is contained in:
McMak 2015-05-21 10:48:54 +03:00
parent 68397679db
commit faee7a4315
5 changed files with 31 additions and 57 deletions

View file

@ -707,14 +707,20 @@
<Component Id="UpdateDatabaseSql" Guid="{089C02F9-D598-435E-8DA9-FC8AED00495C}"> <Component Id="UpdateDatabaseSql" Guid="{089C02F9-D598-435E-8DA9-FC8AED00495C}">
<Condition>NOT (Remove="ALL") AND NOT(DB_AUTH = "Windows Authentication")</Condition> <Condition>NOT (Remove="ALL") AND NOT(DB_AUTH = "Windows Authentication")</Condition>
<CreateFolder /> <CreateFolder />
<sql:SqlString Id="SqlVersionUpdateSql" SQL="IF NOT EXISTS (SELECT * FROM dbo.Versions WHERE DatabaseVersion = '$(var.sql_release_version)') <util:User Id="SqlUpdateUser" Name="[DB_LOGIN]" Password="[DB_PASSWORD]" CreateUser="no" />
BEGIN <sql:SqlDatabase Id="SqlDatabaseUpdateSql" ConfirmOverwrite="yes" ContinueOnError="no" CreateOnInstall="yes" CreateOnReinstall="yes" CreateOnUninstall="no"
INSERT dbo.Versions (DatabaseVersion, BuildDate) VALUES ('$(var.sql_release_version)', '$(var.sql_build_date)') DropOnInstall="no" DropOnReinstall="no" DropOnUninstall="no"
END" Server="[DB_SERVER]"
SqlDb="SqlDatabaseInstallWin" Sequence="2" User="SqlUser" Database="[DB_DATABASE]"
ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no"/> User="SqlUpdateUser">
<sql:SqlScript Id="SqlUpdateScriptSql" BinaryKey="UpdateDB" SqlDb="SqlDatabaseInstallSql" Sequence="3" User="SqlUser" <sql:SqlString Id="SqlVersionUpdateSql" SQL="IF NOT EXISTS (SELECT * FROM dbo.Versions WHERE DatabaseVersion = '$(var.sql_release_version)')
ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no"/> BEGIN
INSERT dbo.Versions (DatabaseVersion, BuildDate) VALUES ('$(var.sql_release_version)', '$(var.sql_build_date)')
END"
Sequence="2" ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no"/>
<sql:SqlScript Id="SqlUpdateScriptSql" BinaryKey="UpdateDB" Sequence="3"
ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no"/>
</sql:SqlDatabase>
</Component> </Component>
<Component Id="InstallDatabaseWin" Guid="{C50FC58C-3EF3-452D-BA9B-C9513B4D941A}"> <Component Id="InstallDatabaseWin" Guid="{C50FC58C-3EF3-452D-BA9B-C9513B4D941A}">
<CreateFolder /> <CreateFolder />
@ -729,13 +735,18 @@
<Component Id="UpdateDatabaseWin" Guid="{A2770B5C-DA46-4125-950F-73A640EB312B}"> <Component Id="UpdateDatabaseWin" Guid="{A2770B5C-DA46-4125-950F-73A640EB312B}">
<Condition>NOT (Remove="ALL") AND (DB_AUTH = "Windows Authentication")</Condition> <Condition>NOT (Remove="ALL") AND (DB_AUTH = "Windows Authentication")</Condition>
<CreateFolder /> <CreateFolder />
<sql:SqlString Id="SqlVersionUpdateWin" SQL="IF NOT EXISTS (SELECT * FROM dbo.Versions WHERE DatabaseVersion = '$(var.sql_release_version)') <sql:SqlDatabase Id="SqlDatabaseUpdateWin" ConfirmOverwrite="no" ContinueOnError="no" CreateOnInstall="yes" CreateOnReinstall="yes" CreateOnUninstall="no"
DropOnInstall="no" DropOnReinstall="no" DropOnUninstall="no"
Server="[DB_SERVER]"
Database="[DB_DATABASE]">
<sql:SqlString Id="SqlVersionUpdateWin" SQL="IF NOT EXISTS (SELECT * FROM dbo.Versions WHERE DatabaseVersion = '$(var.sql_release_version)')
BEGIN BEGIN
INSERT dbo.Versions (DatabaseVersion, BuildDate) VALUES ('$(var.sql_release_version)', '$(var.sql_build_date)') INSERT dbo.Versions (DatabaseVersion, BuildDate) VALUES ('$(var.sql_release_version)', '$(var.sql_build_date)')
END" END"
SqlDb="SqlDatabaseInstallWin" Sequence="11" ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no"/> Sequence="11" ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no"/>
<sql:SqlScript Id="SqlUpdateScriptWin" BinaryKey="UpdateDB" SqlDb="SqlDatabaseInstallWin" Sequence="12" <sql:SqlScript Id="SqlUpdateScriptWin" BinaryKey="UpdateDB" Sequence="12"
ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no" /> ContinueOnError="no" ExecuteOnInstall="yes" ExecuteOnReinstall="yes" ExecuteOnUninstall="no" />
</sql:SqlDatabase>
</Component> </Component>
</DirectoryRef> </DirectoryRef>
</Fragment> </Fragment>

View file

@ -63,9 +63,6 @@ namespace WebsitePanel.Setup.Actions
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists)
return;
try try
{ {
OnInstallProgressChanged(LogStartInstallMessage, 0); OnInstallProgressChanged(LogStartInstallMessage, 0);
@ -235,10 +232,7 @@ namespace WebsitePanel.Setup.Actions
{ {
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists) try
return;
try
{ {
// //
Log.WriteStart(String.Format("Creating database user {0}", vars.Database)); Log.WriteStart(String.Format("Creating database user {0}", vars.Database));
@ -336,9 +330,6 @@ namespace WebsitePanel.Setup.Actions
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists)
return;
try try
{ {
Log.WriteStart("Updating serveradmin password"); Log.WriteStart("Updating serveradmin password");
@ -398,9 +389,6 @@ namespace WebsitePanel.Setup.Actions
{ {
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists)
return;
Log.WriteStart("Updating web.config file (connection string)"); Log.WriteStart("Updating web.config file (connection string)");
var file = Path.Combine(vars.InstallationFolder, vars.ConfigurationFile); var file = Path.Combine(vars.InstallationFolder, vars.ConfigurationFile);
vars.ConnectionString = String.Format(vars.ConnectionString, vars.DatabaseServer, vars.Database, vars.Database, vars.DatabaseUserPassword); vars.ConnectionString = String.Format(vars.ConnectionString, vars.DatabaseServer, vars.Database, vars.Database, vars.DatabaseUserPassword);

View file

@ -151,8 +151,6 @@ namespace WebsitePanel.Setup.Actions
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists)
return;
// Exit with an error if Windows account with the same name already exists // Exit with an error if Windows account with the same name already exists
if (SecurityUtils.UserExists(vars.UserDomain, vars.UserAccount)) if (SecurityUtils.UserExists(vars.UserDomain, vars.UserAccount))
throw new Exception(UserAccountExists); throw new Exception(UserAccountExists);
@ -503,10 +501,7 @@ namespace WebsitePanel.Setup.Actions
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists) var siteName = vars.ComponentFullName;
return;
var siteName = vars.ComponentFullName;
var ip = vars.WebSiteIP; var ip = vars.WebSiteIP;
var port = vars.WebSitePort; var port = vars.WebSitePort;
var domain = vars.WebSiteDomain; var domain = vars.WebSiteDomain;
@ -779,10 +774,7 @@ namespace WebsitePanel.Setup.Actions
void IInstallAction.Run(SetupVariables vars) void IInstallAction.Run(SetupVariables vars)
{ {
if (vars.ComponentExists) try
return;
try
{ {
Begin(LogStartInstallMessage); Begin(LogStartInstallMessage);
// //

View file

@ -198,7 +198,7 @@ namespace WebsitePanel.Setup.Internal
var mup = "MODE_UP"; var mup = "MODE_UP";
var mrup = "MODE_RUP"; var mrup = "MODE_RUP";
var Result = ModeExtension.Normal; var Result = ModeExtension.Normal;
if (Src.Keys.Contains(mup) && !string.IsNullOrWhiteSpace(Src[mup])) if ((Src.Keys.Contains(mup) && !string.IsNullOrWhiteSpace(Src[mup])) || (Src.Keys.Contains("ComponentId") && !string.IsNullOrWhiteSpace(Src["ComponentId"])))
Result = ModeExtension.Restore; Result = ModeExtension.Restore;
else if (Src.Keys.Contains(mrup) && !string.IsNullOrWhiteSpace(Src[mrup])) else if (Src.Keys.Contains(mrup) && !string.IsNullOrWhiteSpace(Src[mrup]))
Result = ModeExtension.Backup; Result = ModeExtension.Backup;
@ -3943,7 +3943,7 @@ namespace WebsitePanel.Setup.Internal
XmlDocumentMerge.KeyAttributes = new List<string> { "name", "id", "key", "pageID", "localName", "xmlns", "privatePath", "moduleDefinitionID", "ref", "verb;path", "controlRenderingCompatibilityVersion;clientIDMode" }; XmlDocumentMerge.KeyAttributes = new List<string> { "name", "id", "key", "pageID", "localName", "xmlns", "privatePath", "moduleDefinitionID", "ref", "verb;path", "controlRenderingCompatibilityVersion;clientIDMode" };
XmlDocumentMerge.FrozenAttributes = new List<XmlDocumentMerge.FrozenAttrTag> XmlDocumentMerge.FrozenAttributes = new List<XmlDocumentMerge.FrozenAttrTag>
{ {
new XmlDocumentMerge.FrozenAttrTag() { Path="configuration/microsoft.web.services3/security/securityTokenManager/add", Attributes = new List<string>() {"localName"} }, new XmlDocumentMerge.FrozenAttrTag() { Path="configuration/microsoft.web.services3/security/securityTokenManager/add", Attributes = new List<string>() {"type"} },
new XmlDocumentMerge.FrozenAttrTag(true) { Path="compilation", Attributes = new List<string>() {"targetFramework"} }, new XmlDocumentMerge.FrozenAttrTag(true) { Path="compilation", Attributes = new List<string>() {"targetFramework"} },
new XmlDocumentMerge.FrozenAttrTag() { Path="configuration/startup/supportedRuntime", Attributes = new List<string>() {"version", "sku" } } new XmlDocumentMerge.FrozenAttrTag() { Path="configuration/startup/supportedRuntime", Attributes = new List<string>() {"version", "sku" } }
}; };
@ -4242,12 +4242,6 @@ namespace WebsitePanel.Setup.Internal
WiXThrow = true; WiXThrow = true;
}); });
sam.Start(); sam.Start();
if (Context.ComponentExists)
{
Context.UpdateVersion = Context.Release;
AppConfig.LoadComponentSettings(Context);
new RestoreScript(Context).Run();
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -4326,12 +4320,6 @@ namespace WebsitePanel.Setup.Internal
WiXThrow = true; WiXThrow = true;
}); });
sam.Start(); sam.Start();
if(Context.ComponentExists)
{
Context.UpdateVersion = Context.Release;
AppConfig.LoadComponentSettings(Context);
new RestoreScript(Context).Run();
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -4410,12 +4398,6 @@ namespace WebsitePanel.Setup.Internal
WiXThrow = true; WiXThrow = true;
}); });
sam.Start(); sam.Start();
if (Context.ComponentExists)
{
Context.UpdateVersion = Context.Release;
AppConfig.LoadComponentSettings(Context);
new RestoreScript(Context).Run();
}
} }
catch (Exception ex) catch (Exception ex)
{ {

View file

@ -219,13 +219,14 @@ namespace WebsitePanel.WIXInstaller
var ConnStr = new SqlConnectionStringBuilder(CtxVars.DbInstallConnectionString); var ConnStr = new SqlConnectionStringBuilder(CtxVars.DbInstallConnectionString);
SetProperty(Ctx, "DB_CONN", ConnStr.ToString()); SetProperty(Ctx, "DB_CONN", ConnStr.ToString());
SetProperty(Ctx, "DB_SERVER", ConnStr.DataSource); SetProperty(Ctx, "DB_SERVER", ConnStr.DataSource);
SetProperty(Ctx, "DB_DATABASE", ConnStr.InitialCatalog);
SetProperty(Ctx, "DB_AUTH", ConnStr.IntegratedSecurity ? SQL_AUTH_WINDOWS : SQL_AUTH_SERVER); SetProperty(Ctx, "DB_AUTH", ConnStr.IntegratedSecurity ? SQL_AUTH_WINDOWS : SQL_AUTH_SERVER);
if (!ConnStr.IntegratedSecurity) if (!ConnStr.IntegratedSecurity)
{ {
SetProperty(Ctx, "DB_LOGIN", ConnStr.UserID); SetProperty(Ctx, "DB_LOGIN", ConnStr.UserID);
SetProperty(Ctx, "DB_PASSWORD", ConnStr.Password); SetProperty(Ctx, "DB_PASSWORD", ConnStr.Password);
} }
ConnStr = new SqlConnectionStringBuilder(CtxVars.ConnectionString);
SetProperty(Ctx, "DB_DATABASE", ConnStr.InitialCatalog);
var HaveAccount = SecurityUtils.UserExists(CtxVars.UserDomain, CtxVars.UserAccount); var HaveAccount = SecurityUtils.UserExists(CtxVars.UserDomain, CtxVars.UserAccount);
bool HavePool = Tool.AppPoolExists(CtxVars.ApplicationPool); bool HavePool = Tool.AppPoolExists(CtxVars.ApplicationPool);