add message for db upgrade
This commit is contained in:
parent
4d7c016224
commit
96120099cb
|
@ -268,13 +268,18 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
||||||
|
|
||||||
private bool EnableLogging(string url)
|
private bool EnableLogging(string url)
|
||||||
{
|
{
|
||||||
var parts = url.Split(new[] { '?' }, 2);
|
var extension = GetExtension(url);
|
||||||
|
|
||||||
var extension = Path.GetExtension(parts[0]);
|
|
||||||
|
|
||||||
return string.IsNullOrWhiteSpace(extension) || !_skipLogExtensions.ContainsKey(extension);
|
return string.IsNullOrWhiteSpace(extension) || !_skipLogExtensions.ContainsKey(extension);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GetExtension(string url)
|
||||||
|
{
|
||||||
|
var parts = url.Split(new[] { '?' }, 2);
|
||||||
|
|
||||||
|
return Path.GetExtension(parts[0]);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Overridable method that can be used to implement a custom hnandler
|
/// Overridable method that can be used to implement a custom hnandler
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -339,6 +344,12 @@ namespace MediaBrowser.Server.Implementations.HttpServer
|
||||||
{
|
{
|
||||||
httpRes.Write(GlobalResponse);
|
httpRes.Write(GlobalResponse);
|
||||||
httpRes.ContentType = "text/plain";
|
httpRes.ContentType = "text/plain";
|
||||||
|
|
||||||
|
if (!string.Equals(GetExtension(urlString), "html", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
httpRes.StatusCode = 503;
|
||||||
|
}
|
||||||
|
|
||||||
return Task.FromResult(true);
|
return Task.FromResult(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,5 +174,6 @@
|
||||||
"HeaderWriter": "Writers",
|
"HeaderWriter": "Writers",
|
||||||
"HeaderParentalRatings": "Parental Ratings",
|
"HeaderParentalRatings": "Parental Ratings",
|
||||||
"HeaderCommunityRatings": "Community ratings",
|
"HeaderCommunityRatings": "Community ratings",
|
||||||
"StartupEmbyServerIsLoading": "Emby Server is loading. Please try again shortly."
|
"StartupEmbyServerIsLoading": "Emby Server is loading. Please try again shortly.",
|
||||||
|
"DbUpgradeMessage": "Please wait while your Emby Server database is upgraded. {0}% complete."
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,5 +173,6 @@
|
||||||
"HeaderWriter": "Writers",
|
"HeaderWriter": "Writers",
|
||||||
"HeaderParentalRatings": "Parental Ratings",
|
"HeaderParentalRatings": "Parental Ratings",
|
||||||
"HeaderCommunityRatings": "Community ratings",
|
"HeaderCommunityRatings": "Community ratings",
|
||||||
"StartupEmbyServerIsLoading": "Emby Server is loading. Please try again shortly."
|
"StartupEmbyServerIsLoading": "Emby Server is loading. Please try again shortly.",
|
||||||
|
"DbUpgradeMessage": "Please wait while your Emby Server database is upgraded. {0}% complete."
|
||||||
}
|
}
|
|
@ -9,11 +9,14 @@ using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.Logging;
|
using MediaBrowser.Model.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CommonIO;
|
using CommonIO;
|
||||||
using MediaBrowser.Controller.Channels;
|
using MediaBrowser.Controller.Channels;
|
||||||
using MediaBrowser.Controller.Entities.Audio;
|
using MediaBrowser.Controller.Entities.Audio;
|
||||||
|
using MediaBrowser.Controller.Localization;
|
||||||
|
using MediaBrowser.Controller.Net;
|
||||||
|
|
||||||
namespace MediaBrowser.Server.Implementations.Persistence
|
namespace MediaBrowser.Server.Implementations.Persistence
|
||||||
{
|
{
|
||||||
|
@ -24,16 +27,21 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly IServerConfigurationManager _config;
|
private readonly IServerConfigurationManager _config;
|
||||||
private readonly IFileSystem _fileSystem;
|
private readonly IFileSystem _fileSystem;
|
||||||
|
private readonly IHttpServer _httpServer;
|
||||||
|
private readonly ILocalizationManager _localization;
|
||||||
|
|
||||||
public const int MigrationVersion = 7;
|
public const int MigrationVersion = 12;
|
||||||
|
public static bool EnableUnavailableMessage = false;
|
||||||
|
|
||||||
public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config, IFileSystem fileSystem)
|
public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config, IFileSystem fileSystem, IHttpServer httpServer, ILocalizationManager localization)
|
||||||
{
|
{
|
||||||
_libraryManager = libraryManager;
|
_libraryManager = libraryManager;
|
||||||
_itemRepo = itemRepo;
|
_itemRepo = itemRepo;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_config = config;
|
_config = config;
|
||||||
_fileSystem = fileSystem;
|
_fileSystem = fileSystem;
|
||||||
|
_httpServer = httpServer;
|
||||||
|
_localization = localization;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name
|
public string Name
|
||||||
|
@ -54,7 +62,23 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||||
public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
|
public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
|
||||||
{
|
{
|
||||||
var innerProgress = new ActionableProgress<double>();
|
var innerProgress = new ActionableProgress<double>();
|
||||||
innerProgress.RegisterAction(p => progress.Report(.4 * p));
|
innerProgress.RegisterAction(p =>
|
||||||
|
{
|
||||||
|
double newPercentCommplete = .4 * p;
|
||||||
|
if (EnableUnavailableMessage)
|
||||||
|
{
|
||||||
|
var html = "<!doctype html><html><head><title>Emby</title></head><body>";
|
||||||
|
var text = _localization.GetLocalizedString("DbUpgradeMessage");
|
||||||
|
html += string.Format(text, newPercentCommplete.ToString("N2", CultureInfo.InvariantCulture));
|
||||||
|
|
||||||
|
html += "<script>setTimeout(function(){window.location.reload(true);}, 5000);</script>";
|
||||||
|
html += "</body></html>";
|
||||||
|
|
||||||
|
_httpServer.GlobalResponse = html;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress.Report(newPercentCommplete);
|
||||||
|
});
|
||||||
|
|
||||||
await UpdateToLatestSchema(cancellationToken, innerProgress).ConfigureAwait(false);
|
await UpdateToLatestSchema(cancellationToken, innerProgress).ConfigureAwait(false);
|
||||||
|
|
||||||
|
@ -69,6 +93,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||||
progress.Report(100);
|
progress.Report(100);
|
||||||
|
|
||||||
await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
|
await _itemRepo.UpdateInheritedValues(cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
|
if (EnableUnavailableMessage)
|
||||||
|
{
|
||||||
|
EnableUnavailableMessage = false;
|
||||||
|
_httpServer.GlobalResponse = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task UpdateToLatestSchema(CancellationToken cancellationToken, IProgress<double> progress)
|
private async Task UpdateToLatestSchema(CancellationToken cancellationToken, IProgress<double> progress)
|
||||||
|
|
|
@ -82,7 +82,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
|
||||||
|
|
||||||
private IDbCommand _updateInheritedRatingCommand;
|
private IDbCommand _updateInheritedRatingCommand;
|
||||||
|
|
||||||
private const int LatestSchemaVersion = 40;
|
private const int LatestSchemaVersion = 44;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
|
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
|
||||||
|
|
|
@ -20,9 +20,11 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
|
||||||
{
|
{
|
||||||
if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion)
|
if (_config.Configuration.MigrationVersion < CleanDatabaseScheduledTask.MigrationVersion)
|
||||||
{
|
{
|
||||||
|
CleanDatabaseScheduledTask.EnableUnavailableMessage = true;
|
||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
await Task.Delay(2000).ConfigureAwait(false);
|
await Task.Delay(1000).ConfigureAwait(false);
|
||||||
|
|
||||||
_taskManager.QueueScheduledTask<CleanDatabaseScheduledTask>();
|
_taskManager.QueueScheduledTask<CleanDatabaseScheduledTask>();
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user