1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using System.Threading.Tasks;
- using MediaBrowser.Common.ScheduledTasks;
- using MediaBrowser.Controller.Configuration;
- using MediaBrowser.Server.Implementations.Persistence;
- namespace MediaBrowser.Server.Startup.Common.Migrations
- {
- public class DbMigration : IVersionMigration
- {
- private readonly IServerConfigurationManager _config;
- private readonly ITaskManager _taskManager;
- public DbMigration(IServerConfigurationManager config, ITaskManager taskManager)
- {
- _config = config;
- _taskManager = taskManager;
- }
- public async Task Run()
- {
- // If a forced migration is required, do that now
- if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion)
- {
- if (!_config.Configuration.IsStartupWizardCompleted)
- {
- _config.Configuration.MigrationVersion = CleanDatabaseScheduledTask.MigrationVersion;
- _config.SaveConfiguration();
- return;
- }
- _taskManager.SuspendTriggers = true;
- CleanDatabaseScheduledTask.EnableUnavailableMessage = true;
-
- Task.Run(async () =>
- {
- await Task.Delay(1000).ConfigureAwait(false);
- _taskManager.Execute<CleanDatabaseScheduledTask>();
- });
- return;
- }
-
- if (_config.Configuration.SchemaVersion < SqliteItemRepository.LatestSchemaVersion)
- {
- if (!_config.Configuration.IsStartupWizardCompleted)
- {
- _config.Configuration.SchemaVersion = SqliteItemRepository.LatestSchemaVersion;
- _config.SaveConfiguration();
- return;
- }
- Task.Run(async () =>
- {
- await Task.Delay(1000).ConfigureAwait(false);
- _taskManager.Execute<CleanDatabaseScheduledTask>();
- });
- }
- }
- }
- }
|