Pārlūkot izejas kodu

Merge pull request #1236 from MediaBrowser/master

add more migration error handling
Luke 9 gadi atpakaļ
vecāks
revīzija
a9e0797878

+ 32 - 14
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -225,45 +225,63 @@ 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;"
                                };
 
+                _connection.RunQueries(queries, _logger);
+            }
+            catch (Exception ex)
+            {
+                _logger.ErrorException("Error migrating chapter database", ex);
+            }
+            finally
+            {
+                TryDeleteFile(file);
+            }
+        }
+
+        private void TryDeleteFile(string file)
+        {
             try
             {
-                _connection.RunQueries(queries, _logger);
                 File.Delete(file);
             }
             catch (Exception ex)
             {
-                _logger.ErrorException("Error migrating chapter database", ex);
+                _logger.ErrorException("Error deleting file {0}", ex, file);
             }
         }