update migration

This commit is contained in:
Luke Pulverenti 2016-02-03 17:42:33 -05:00
parent 001c3c99b3
commit dff32c2404
4 changed files with 15 additions and 8 deletions

View File

@ -10,6 +10,7 @@ using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using CommonIO;
@ -32,7 +33,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
private readonly ILocalizationManager _localization;
private readonly ITaskManager _taskManager;
public const int MigrationVersion = 17;
public const int MigrationVersion = 20;
public static bool EnableUnavailableMessage = false;
public CleanDatabaseScheduledTask(ILibraryManager libraryManager, IItemRepository itemRepo, ILogger logger, IServerConfigurationManager config, IFileSystem fileSystem, IHttpServer httpServer, ILocalizationManager localization, ITaskManager taskManager)
@ -66,6 +67,10 @@ namespace MediaBrowser.Server.Implementations.Persistence
{
OnProgress(0);
// Ensure these objects are out of the database.
var rootChildren = _libraryManager.RootFolder.Children.ToList();
rootChildren = _libraryManager.GetUserRootFolder().Children.ToList();
var innerProgress = new ActionableProgress<double>();
innerProgress.RegisterAction(p =>
{
@ -148,8 +153,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
if (itemId != Guid.Empty)
{
LogMessage(string.Format("Querying item {0}", itemId));
// Somehow some invalid data got into the db. It probably predates the boundary checking
var item = _libraryManager.GetItemById(itemId);
@ -157,8 +160,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
{
try
{
LogMessage(string.Format("Saving item {0}", itemId));
await _itemRepo.SaveItem(item, cancellationToken).ConfigureAwait(false);
}
catch (OperationCanceledException)

View File

@ -583,16 +583,22 @@ namespace MediaBrowser.Server.Implementations.Persistence
CheckDisposed();
_logger.Info("SaveItems waiting on write lock");
await _writeLock.WaitAsync(cancellationToken).ConfigureAwait(false);
IDbTransaction transaction = null;
try
{
_logger.Info("SaveItems creating transaction");
transaction = _connection.BeginTransaction();
foreach (var item in items)
{
_logger.Info("Saving {0}", item.Id);
cancellationToken.ThrowIfCancellationRequested();
var index = 0;

View File

@ -328,6 +328,8 @@ namespace MediaBrowser.Server.Startup.Common
Logger.Info("Core startup complete");
HttpServer.GlobalResponse = null;
PerformPostInitMigrations();
Parallel.ForEach(GetExports<IServerEntryPoint>(), entryPoint =>
{
try
@ -341,8 +343,6 @@ namespace MediaBrowser.Server.Startup.Common
});
LogManager.RemoveConsoleOutput();
PerformPostInitMigrations();
}
public override Task Init(IProgress<double> progress)

View File

@ -25,7 +25,7 @@ namespace MediaBrowser.Server.Startup.Common.Migrations
Task.Run(async () =>
{
await Task.Delay(1000).ConfigureAwait(false);
await Task.Delay(100).ConfigureAwait(false);
_taskManager.Execute<CleanDatabaseScheduledTask>();
});