From 14c57619591365b992a420096c9bd1b4f080347f Mon Sep 17 00:00:00 2001 From: Michael Green <84688932+michael-j-green@users.noreply.github.com> Date: Mon, 26 Feb 2024 16:17:26 +1100 Subject: [PATCH] Error on startup when reading value LastRun_BackgroundDatabaseUpgrade (#319) Fixes #300 --- gaseous-server/Classes/Config.cs | 5 +++++ gaseous-server/Classes/Database.cs | 35 ++++++++++++++++++++++++------ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/gaseous-server/Classes/Config.cs b/gaseous-server/Classes/Config.cs index 80eea28..26f9963 100644 --- a/gaseous-server/Classes/Config.cs +++ b/gaseous-server/Classes/Config.cs @@ -196,6 +196,11 @@ namespace gaseous_server.Classes { string SettingName = (string)dataRow["Setting"]; + if (SettingName.StartsWith("LastRun_")) + { + Console.WriteLine("Break"); + } + if (AppSettings.ContainsKey(SettingName)) { AppSettings.Remove(SettingName); diff --git a/gaseous-server/Classes/Database.cs b/gaseous-server/Classes/Database.cs index dcf44c5..5bc4423 100644 --- a/gaseous-server/Classes/Database.cs +++ b/gaseous-server/Classes/Database.cs @@ -9,8 +9,21 @@ namespace gaseous_server.Classes { public class Database { - public static int schema_version = 0; - + private static int _schema_version { get; set; } = 0; + public static int schema_version + { + get + { + //Logging.Log(Logging.LogType.Information, "Database Schema", "Schema version is " + _schema_version); + return _schema_version; + } + set + { + //Logging.Log(Logging.LogType.Information, "Database Schema", "Setting schema version " + _schema_version); + _schema_version = value; + } + } + public Database() { @@ -80,7 +93,16 @@ namespace gaseous_server.Classes ExecuteCMD(sql, dbDict); } - for (int i = 1000; i < 10000; i++) + sql = "SELECT schema_version FROM schema_version;"; + dbDict = new Dictionary(); + DataTable SchemaVersion = ExecuteCMD(sql, dbDict); + int OuterSchemaVer = (int)SchemaVersion.Rows[0][0]; + if (OuterSchemaVer == 0) + { + OuterSchemaVer = 1000; + } + + for (int i = OuterSchemaVer; i < 10000; i++) { string resourceName = "gaseous_server.Support.Database.MySQL.gaseous-" + i + ".sql"; string dbScript = ""; @@ -96,7 +118,7 @@ namespace gaseous_server.Classes // apply script sql = "SELECT schema_version FROM schema_version;"; dbDict = new Dictionary(); - DataTable SchemaVersion = ExecuteCMD(sql, dbDict); + SchemaVersion = ExecuteCMD(sql, dbDict); if (SchemaVersion.Rows.Count == 0) { // something is broken here... where's the table? @@ -107,6 +129,8 @@ namespace gaseous_server.Classes { int SchemaVer = (int)SchemaVersion.Rows[0][0]; Logging.Log(Logging.LogType.Information, "Database", "Schema version is " + SchemaVer); + // update schema version variable + Database.schema_version = SchemaVer; if (SchemaVer < i) { try @@ -125,9 +149,6 @@ namespace gaseous_server.Classes // run post-upgrade code DatabaseMigration.PostUpgradeScript(i, _ConnectorType); - - // update schema version variable - Database.schema_version = i; } catch (Exception ex) {