From b0ef40a5604cb7e335a1def3ea603f8332da19af Mon Sep 17 00:00:00 2001 From: tidusjar Date: Mon, 25 Apr 2016 10:10:20 +0100 Subject: [PATCH] Remove old migration code and added new migration code. --- PlexRequests.Core/Setup.cs | 96 ++--------------------------- PlexRequests.Store/TableCreation.cs | 17 +++-- 2 files changed, 19 insertions(+), 94 deletions(-) diff --git a/PlexRequests.Core/Setup.cs b/PlexRequests.Core/Setup.cs index 70d9e6083..a73a5752d 100644 --- a/PlexRequests.Core/Setup.cs +++ b/PlexRequests.Core/Setup.cs @@ -58,10 +58,9 @@ namespace PlexRequests.Core var version = CheckSchema(); if (version > 0) { - if (version > 1300 && version <= 1699) + if (version > 1700 && version <= 1799) { - MigrateDbFrom1300(); - UpdateRequestBlobsTable(); + MigrateToVersion1700(); } } @@ -164,94 +163,11 @@ namespace PlexRequests.Core Log.Error(ex, "Failed to cache CouchPotato quality profiles!"); } } - - private void UpdateRequestBlobsTable() // TODO: Remove in v1.7 - { - try - { - TableCreation.AlterTable(Db.DbConnection(), "RequestBlobs", "ADD COLUMN", "MusicId", false, "TEXT"); - } - catch (Exception e) - { - Log.Error("Tried updating the schema to alter the request blobs table"); - Log.Error(e); - } - } - private void MigrateDbFrom1300() // TODO: Remove in v1.7 + public void MigrateToVersion1700() { - - var result = new List(); - RequestedModel[] requestedModels; - var repo = new GenericRepository(Db, new MemoryCacheProvider()); - try - { - var records = repo.GetAll(); - requestedModels = records as RequestedModel[] ?? records.ToArray(); - } - catch (SqliteException) - { - // There is no requested table so they do not have an old version of the DB - return; - } - - if (!requestedModels.Any()) - { return; } - - var jsonRepo = new JsonRequestService(new RequestJsonRepository(Db, new MemoryCacheProvider())); - - var api = new TvMazeApi(); - - foreach (var r in requestedModels.Where(x => x.Type == RequestType.TvShow)) - { - var show = api.ShowLookupByTheTvDbId(r.ProviderId); - - var model = new RequestedModel - { - Title = show.name, - PosterPath = show.image?.medium, - Type = RequestType.TvShow, - ProviderId = show.externals.thetvdb ?? 0, - ReleaseDate = r.ReleaseDate, - AdminNote = r.AdminNote, - Approved = r.Approved, - Available = r.Available, - ImdbId = show.externals.imdb, - Issues = r.Issues, - OtherMessage = r.OtherMessage, - Overview = show.summary.RemoveHtml(), - RequestedUsers = r.AllUsers, // should pull in the RequestedBy property and merge with RequestedUsers - RequestedDate = r.ReleaseDate, - Status = show.status - }; - var id = jsonRepo.AddRequest(model); - result.Add(id); - } - - foreach (var source in requestedModels.Where(x => x.Type == RequestType.Movie)) - { - var id = jsonRepo.AddRequest(source); - result.Add(id); - } - - - if (result.Any(x => x == -1)) - { - throw new SqliteException("Could not migrate the DB!"); - } - - - if (result.Count != requestedModels.Length) - { - throw new SqliteException("Could not migrate the DB! count is different"); - } - - - // Now delete the old requests - foreach (var oldRequest in requestedModels) - { - repo.Delete(oldRequest); - } - + // Drop old tables + TableCreation.DropTable(Db.DbConnection(), "User"); + TableCreation.DropTable(Db.DbConnection(), "Log"); } } } diff --git a/PlexRequests.Store/TableCreation.cs b/PlexRequests.Store/TableCreation.cs index 717bd2dd9..1e3a9d5a7 100644 --- a/PlexRequests.Store/TableCreation.cs +++ b/PlexRequests.Store/TableCreation.cs @@ -44,7 +44,18 @@ namespace PlexRequests.Store connection.Close(); } - public static void AlterTable(IDbConnection connection, string tableName, string alterType, string newColumn, bool isNullable, string dataType) + public static void DropTable(IDbConnection con, string tableName) + { + using (con) + { + con.Open(); + var query = $"DROP TABLE IF EXISTS {tableName}"; + con.Execute(query); + con.Close(); + } + } + + public static void AddColumn(IDbConnection connection, string tableName, string alterType, string newColumn, bool isNullable, string dataType) { connection.Open(); var result = connection.Query($"PRAGMA table_info({tableName});"); @@ -83,7 +94,7 @@ namespace PlexRequests.Store public static void CreateSchema(this IDbConnection con, int version) { con.Open(); - con.Query(string.Format("INSERT INTO DBInfo (SchemaVersion) values ({0})", version)); + con.Query($"INSERT INTO DBInfo (SchemaVersion) values ({version})"); con.Close(); } @@ -115,7 +126,5 @@ namespace PlexRequests.Store public string dflt_value { get; set; } public int pk { get; set; } } - - } }