public DatabaseUpdateStatus PerformUpdates()
{
DatabaseUpdateStatus status = new DatabaseUpdateStatus();
bool bUpdate = true;
List<DatabaseUpdateMessage> lst = new List<DatabaseUpdateMessage>();
if (!DoCMSTablesExist()) {
HandleResponse(lst, "Create Database", CreateCMSDatabase());
} else {
HandleResponse(lst, "Database already exists");
}
bUpdate = DatabaseNeedsUpdate();
DataInfo ver = GetDbSchemaVersion();
int iUpdate = 1;
if (bUpdate || (ver.DataValue != DatabaseUpdate.CurrentDbVersion)) {
if (ver.DataValue != DatabaseUpdate.CurrentDbVersion) {
ver = GetDbSchemaVersion();
if (ver.DataValue != DatabaseUpdate.CurrentDbVersion) {
ver = GetDbSchemaVersion();
if (ver.DataValue == DatabaseUpdate.DbVersion00 || ver.DataValue.StartsWith("201508")
|| ver.DataValue.StartsWith("201509") || ver.DataValue.StartsWith("201510")) {
HandleResponse(lst, BuildUpdateString(iUpdate++), AlterStep01());
}
}
} else {
HandleResponse(lst, "Database up-to-date [" + ver.DataValue + "] ");
}
} else {
HandleResponse(lst, "Database up-to-date [" + ver.DataValue + "] ");
}
ResetFailedSQL();
ResetSQLState();
bUpdate = DatabaseNeedsUpdate();
status.NeedsUpdate = bUpdate;
status.Messages = lst;
return status;
}