DbMigration.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  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. {
  20. _taskManager.SuspendTriggers = true;
  21. CleanDatabaseScheduledTask.EnableUnavailableMessage = true;
  22. Task.Run(async () =>
  23. {
  24. await Task.Delay(1000).ConfigureAwait(false);
  25. _taskManager.Execute<CleanDatabaseScheduledTask>();
  26. });
  27. }
  28. }
  29. }
  30. }