From 886750a7f8463fd5354fad5eafee8c2320e10cb9 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 28 Oct 2015 16:24:07 -0400 Subject: [PATCH] add more migration error handling --- .../Persistence/SqliteItemRepository.cs | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs index 7fbd9ee894..dcf94f737d 100644 --- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs +++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs @@ -217,46 +217,64 @@ namespace MediaBrowser.Server.Implementations.Persistence private void MigrateMediaStreams(string file) { - var backupFile = file + ".bak"; - File.Copy(file, backupFile, true); - SqliteExtensions.Attach(_connection, backupFile, "MediaInfoOld"); + try + { + var backupFile = file + ".bak"; + File.Copy(file, backupFile, true); + SqliteExtensions.Attach(_connection, backupFile, "MediaInfoOld"); - var columns = string.Join(",", _mediaStreamSaveColumns); + var columns = string.Join(",", _mediaStreamSaveColumns); - string[] queries = { + string[] queries = { "REPLACE INTO mediastreams("+columns+") SELECT "+columns+" FROM MediaInfoOld.mediastreams;" }; - try - { _connection.RunQueries(queries, _logger); - File.Delete(file); } catch (Exception ex) { _logger.ErrorException("Error migrating media info database", ex); } + finally + { + TryDeleteFile(file); + } } private void MigrateChapters(string file) { - var backupFile = file + ".bak"; - File.Copy(file, backupFile, true); - SqliteExtensions.Attach(_connection, backupFile, "ChaptersOld"); + try + { + var backupFile = file + ".bak"; + File.Copy(file, backupFile, true); + SqliteExtensions.Attach(_connection, backupFile, "ChaptersOld"); - string[] queries = { + string[] queries = { "REPLACE INTO "+ChaptersTableName+"(ItemId, ChapterIndex, StartPositionTicks, Name, ImagePath) SELECT ItemId, ChapterIndex, StartPositionTicks, Name, ImagePath FROM ChaptersOld.Chapters;" }; - try - { _connection.RunQueries(queries, _logger); - File.Delete(file); } catch (Exception ex) { _logger.ErrorException("Error migrating chapter database", ex); } + finally + { + TryDeleteFile(file); + } + } + + private void TryDeleteFile(string file) + { + try + { + File.Delete(file); + } + catch (Exception ex) + { + _logger.ErrorException("Error deleting file {0}", ex, file); + } } ///