private static void UpdateToVersion2014_07_17(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();

                db.AddField("VolumeEquation", new ColumnInfo("MerchModFlag", "INTEGER")
                {
                    Default = "0"
                });

                db.AddField("SampleGroupStats", new ColumnInfo("ReconPlots", "INTEGER")
                {
                    Default = "0"
                });
                db.AddField("SampleGroupStats", new ColumnInfo("ReconTrees", "INTEGER")
                {
                    Default = "0"
                });

                SetDatabaseVersion(db, "2014.07.17");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2014.07.17", e);
            }
        }
Beispiel #2
0
        private static void UpdateToVersion2015_08_19(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            var  tavCols            = db.GetTableInfo("TreeAuditValue");
            bool hasErrorMessageCol = false;

            foreach (ColumnInfo col in tavCols)
            {
                if (col.Name == "ErrorMessage")
                {
                    hasErrorMessageCol = true; break;
                }
            }

            try
            {
                db.BeginTransaction();
                if (!hasErrorMessageCol)
                {
                    db.AddField("TreeAuditValue", new ColumnInfo("ErrorMessage", "TEXT"));
                }

                SetDatabaseVersion(db, "2015.08.19");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2015.08.19", e);
            }
        }
Beispiel #3
0
        public static void UpdateToVersion2015_08_03(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();
                db.AddField("Plot", new ColumnInfo("Plot_GUID", "TEXT"));
                db.AddField("Tree", new ColumnInfo("Tree_GUID", "TEXT"));
                db.AddField("Log", new ColumnInfo("Log_GUID", "TEXT"));
                db.AddField("Stem", new ColumnInfo("Stem_GUID", "TEXT"));
                db.AddField("TreeEstimate", new ColumnInfo("TreeEstimate_GUID", "TEXT"));

                SetDatabaseVersion(db, "2015.08.03");

                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2015.08.03", e);
            }
        }
        private static void UpdateToVersion2014_07_07(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();
                db.AddField("SampleGroup", new ColumnInfo("MinKPI", "INTEGER")
                {
                    Default = "0"
                });
                db.AddField("SampleGroup", new ColumnInfo("MaxKPI", "INTEGER")
                {
                    Default = "0"
                });
                SetDatabaseVersion(db, "2014.07.07");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2014.07.07", e);
            }
        }
        private static void UpdateToVersion2014_07_02(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();
                db.AddField("LogStock", new ColumnInfo("BoardUtil", "REAL")
                {
                    Default = "0.0"
                });
                db.AddField("LogStock", new ColumnInfo("CubicUtil", "REAL")
                {
                    Default = "0.0"
                });
                SetDatabaseVersion(db, "2014.07.02");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2014.07.02", e);
            }
        }
        private static void UpdateToVersion2014_09_02(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();
                db.AddField("SampleGroup", new ColumnInfo("TallyMethod", "TEXT"));
                SetDatabaseVersion(db, "2014.09.02");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();

                throw new SchemaUpdateException(startVersion, "2014.09.02", e);
            }
        }
        private static void UpdateToVersion2014_08_20(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();
                db.AddField("VolumeEquation", new ColumnInfo("EvenOddSegment", "INTEGER")
                {
                    Default = "0"
                });
                SetDatabaseVersion(db, "2014.08.20");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2014.08.20", e);
            }
        }
        private static void UpdateToVersion2014_06_04(CruiseDatastore db)
        {
            var startVersion = db.DatabaseVersion;

            try
            {
                db.BeginTransaction();
                db.AddField("Sale", new ColumnInfo("LogGradingEnabled", "BOOLEAN")
                {
                    Default = "0"
                });

                SetDatabaseVersion(db, "2014.06.04");
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw new SchemaUpdateException(startVersion, "2014.06.04", e);
            }
        }
Beispiel #9
0
        public static void Update_Impl(CruiseDatastore db)
        {
            var dbVersion = db.DatabaseVersion;

            if (string.IsNullOrWhiteSpace(dbVersion))
            {
                throw new UpdateException("unable to determin file version");
            }

            if (!CheckCanUpdate(dbVersion))
            {
                throw new IncompatibleSchemaException($"The version of this cruise file ({dbVersion}) is not compatible with the version of the software you are using." +
                                                      "Go to github.com/FMSC-Measurements to get the latest version of our software.", null);
            }

            if (dbVersion.StartsWith("2013") || dbVersion == "2014.01.21")
            {
                throw new IncompatibleSchemaException($"The version of this cruise file ({dbVersion}) is no longer supported." +
                                                      "Go to github.com/FMSC-Measurements to get archived versions of our software.", null);
            }

            if (db.DatabaseVersion == "2014.03.12")
            {
                UpdateToVersion2014_06_04(db);
            }
            if (db.DatabaseVersion == "2014.06.04")
            {
                UpdateToVersion2014_07_02(db);
            }
            if (db.DatabaseVersion == "2014.07.02")
            {
                UpdateToVersion2014_07_07(db);
            }
            if (db.DatabaseVersion == "2014.07.07")
            {
                UpdateToVersion2014_07_17(db);
            }
            if (db.DatabaseVersion == "2014.07.17")
            {
                UpdateToVersion2014_07_24(db);
            }
            if (db.DatabaseVersion == "2014.07.24")
            {
                UpdateToVersion2014_08_20(db);
            }
            if (db.DatabaseVersion == "2014.08.20")
            {
                UpdateToVersion2014_09_02(db);
            }
            if (db.DatabaseVersion == "2014.09.02")
            {
                UpdateToVersion2014_10_01(db);
            }
            if (db.DatabaseVersion == "2014.10.01" || db.DatabaseVersion == "2015.01.05")
            {
                UpdateToVersion2015_04_28(db);
            }

            if (db.DatabaseVersion == "2015.04.28")
            {
                UpdateToVersion2015_08_03(db);
            }

            if (db.DatabaseVersion == "2015.06.01")
            {
                SetDatabaseVersion(db, "2015.08.03");
            }

            if (db.DatabaseVersion == "2015.08.03")
            {
                UpdateToVersion2015_08_19(db);
            }
            if (db.DatabaseVersion == "2015.08.19")
            {
                UpdateToVersion2015_09_01(db);
            }
            if (db.DatabaseVersion == "2015.09.01" ||
                db.DatabaseVersion == "2.0.0" ||
                db.DatabaseVersion == "2.1.0")
            {
                UpdateTo_2_1_1(db);
            }
            if (db.DatabaseVersion.StartsWith("2.1.1"))
            {
                UpdateTo_2_1_2(db);
            }
            if (db.DatabaseVersion.StartsWith("2.1.2"))
            {
                UpdateTo_2_2_0(db);
            }
            // files updated to 2.5.0 may have corrupted data
            // attempt to patch them and set version to 2.5.1.1
            if (db.DatabaseVersion.StartsWith("2.5.0"))
            {
                FixVersion_2_5_0(db);
            }
            if (db.DatabaseVersion.StartsWith("2.2."))
            {
                UpdateTo_2_5_1(db);
            }
            if (db.DatabaseVersion.StartsWith("2.5."))
            {
                UpdateTo_2_6_1(db);
            }
            if (db.DatabaseVersion.StartsWith("2.6."))
            {
                UpdateTo_2_7_0(db);
            }
            if (db.DatabaseVersion == "2.7.0")
            {
                UpdateTo_2_7_1(db);
            }
            if (db.DatabaseVersion == "2.7.1" || db.DatabaseVersion == "2.7.3")
            {
                UpdateTo_2_7_3(db);
            }

            if (db.CheckFieldExists("Stratum", "HotKey") == false)
            {
                db.AddField("Stratum", new ColumnInfo("HotKey", "TEXT"));
            }
        }