DbMigration.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Threading.Tasks;
  2. using MediaBrowser.Common.ScheduledTasks;
  3. using MediaBrowser.Controller.Configuration;
  4. using MediaBrowser.Server.Implementations.Persistence;
  5. namespace MediaBrowser.Server.Startup.Common.Migrations
  6. {
  7. public class DbMigration : IVersionMigration
  8. {
  9. private readonly IServerConfigurationManager _config;
  10. private readonly ITaskManager _taskManager;
  11. public DbMigration(IServerConfigurationManager config, ITaskManager taskManager)
  12. {
  13. _config = config;
  14. _taskManager = taskManager;
  15. }
  16. public void Run()
  17. {
  18. if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion &&
  19. _config.Configuration.IsStartupWizardCompleted)
  20. {
  21. _taskManager.SuspendTriggers = true;
  22. CleanDatabaseScheduledTask.EnableUnavailableMessage = true;
  23. Task.Run(async () =>
  24. {
  25. await Task.Delay(100).ConfigureAwait(false);
  26. _taskManager.Execute<CleanDatabaseScheduledTask>();
  27. });
  28. }
  29. }
  30. }
  31. }