public void Upgrade()
{
using (SqlConnection connection = new SqlConnection(this.connectionString))
{
connection.Open();
using (SqlTransaction transaction = connection.BeginTransaction())
{
try
{
Version installationVersion = this.GetCurrentInstallationVersion();
if (installationVersion == null)
{
//This is the base version. We need to hardcode this
//because Subtext 1.0 didn't write the assembly version
//into the database.
installationVersion = new Version(1, 0, 0, 0);
}
string[] scripts = ListInstallationScripts(installationVersion, VersionInfo.FrameworkVersion);
foreach (string scriptName in scripts)
{
ScriptHelper.ExecuteScript(scriptName, transaction, _dbUser);
}
ScriptHelper.ExecuteScript("StoredProcedures.sql", transaction, _dbUser);
UpdateInstallationVersionNumber(VersionInfo.FrameworkVersion, transaction);
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
}
}
}