示例#1
0
        /// <summary>
        /// Applies all sql files, found in the specific folders
        /// </summary>
        /// <param name="db"></param>
        /// <param name="folders"></param>
        /// <param name="createUpdateFolder"></param>
        /// <param name="hashsumTracking">Activate the hashsum tracking</param>
        /// <returns></returns>
        public async static Task <bool> ApplyUpdates(this DbContext db, List <string> folders, bool hashSumTracking = true, int timeOut = 60, bool debugOutput = false)
        {
            if (timeOut <= 0)
            {
                timeOut = 60;
            }

            Constants.HashSumTracking = hashSumTracking;
            Constants.DebugOutput     = debugOutput;
            Constants.SQLTimeout      = timeOut;

            if (!hashSumTracking)
            {
                return(await MySqlUpdater.UpdateDB(db, folders));
            }

            if (await MySqlUpdater.IsUpdatesTableAvailable(db))
            {
                return(await MySqlUpdater.UpdateDB(db, folders));
            }
            else
            {
                if (debugOutput)
                {
                    Console.WriteLine("No updates table detected! Aborting! Please use CreateUpdatesTable() to create the required table or set hashSumTracking = false.");
                }
                return(false);
            }
        }