Exemple #1
0
        private void UpgradeToVersion092(int dbVersion)
        {
            const string upgradeVersionString = "0.9.2";

            if (dbVersion < Application.ParseVersion(upgradeVersionString))
            {
                using (var connection = new SQLiteConnection(ConnectionString))
                {
                    connection.Open();
                    using (var transaction = connection.BeginTransaction())
                    {
                        try
                        {
                            _logger.InfoFormat("Performing WU History database upgrade to v{0}...", upgradeVersionString);
                            // delete duplicates
                            var duplicateDeleter = new DuplicateDeleter(connection, _logger);
                            duplicateDeleter.ExecuteAsyncWithProgress(true).Wait();
                            // add columns to WuHistory table
                            AddProteinColumns(connection);
                            // update the WuHistory table with protein info
                            var proteinDataUpdater = new ProteinDataUpdater(connection, _proteinService);
                            proteinDataUpdater.ExecuteAsyncWithProgress(true).Wait();
                            // set database version
                            SetDatabaseVersion(connection, upgradeVersionString);

                            transaction.Commit();
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                            throw new DataException("Database upgrade failed.", ex);
                        }
                    }
                }
            }
        }