aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-03 17:42:33 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-02-03 17:43:27 -0500
commitdff32c24047e5eaffdb0918b44df9d96c54ccd8b (patch)
tree0f0b060209db933bbd46dee5171a407633ec53a1 /MediaBrowser.Server.Implementations
parent001c3c99b36ebf20118458076034c7ca271876e8 (diff)
update migration
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs11
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs6
2 files changed, 12 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
index f7c6fe502..5c600c249 100644
--- a/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/CleanDatabaseScheduledTask.cs
@@ -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)
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 7898dc1ef..3dc37110e 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -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;