aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs109
1 files changed, 25 insertions, 84 deletions
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
index 7f45e6184..7e2cc2da3 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs
@@ -87,7 +87,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
private IDbCommand _updateInheritedRatingCommand;
private IDbCommand _updateInheritedTagsCommand;
- public const int LatestSchemaVersion = 79;
+ public const int LatestSchemaVersion = 80;
/// <summary>
/// Initializes a new instance of the <see cref="SqliteItemRepository"/> class.
@@ -239,6 +239,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
_connection.AddColumn(Logger, "TypedBaseItems", "DateLastMediaAdded", "DATETIME");
_connection.AddColumn(Logger, "TypedBaseItems", "Album", "Text");
_connection.AddColumn(Logger, "TypedBaseItems", "IsVirtualItem", "BIT");
+ _connection.AddColumn(Logger, "TypedBaseItems", "SeriesName", "Text");
_connection.AddColumn(Logger, "UserDataKeys", "Priority", "INT");
@@ -254,53 +255,9 @@ namespace MediaBrowser.Server.Implementations.Persistence
new MediaStreamColumns(_connection, Logger).AddColumns();
- var mediaStreamsDbFile = Path.Combine(_config.ApplicationPaths.DataPath, "mediainfo.db");
- if (File.Exists(mediaStreamsDbFile))
- {
- MigrateMediaStreams(mediaStreamsDbFile);
- }
-
DataExtensions.Attach(_connection, Path.Combine(_config.ApplicationPaths.DataPath, "userdata_v2.db"), "UserDataDb");
}
- private void MigrateMediaStreams(string file)
- {
- try
- {
- var backupFile = file + ".bak";
- File.Copy(file, backupFile, true);
- DataExtensions.Attach(_connection, backupFile, "MediaInfoOld");
-
- var columns = string.Join(",", _mediaStreamSaveColumns);
-
- string[] queries = {
- "REPLACE INTO mediastreams("+columns+") SELECT "+columns+" FROM MediaInfoOld.mediastreams;"
- };
-
- _connection.RunQueries(queries, Logger);
- }
- catch (Exception ex)
- {
- Logger.ErrorException("Error migrating media info 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);
- }
- }
-
private readonly string[] _retriveItemColumns =
{
"type",
@@ -477,7 +434,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
"PrimaryVersionId",
"DateLastMediaAdded",
"Album",
- "IsVirtualItem"
+ "IsVirtualItem",
+ "SeriesName"
};
_saveItemCommand = _connection.CreateCommand();
_saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
@@ -879,6 +837,16 @@ namespace MediaBrowser.Server.Implementations.Persistence
_saveItemCommand.GetParameter(index++).Value = null;
}
+ var hasSeries = item as IHasSeries;
+ if (hasSeries != null)
+ {
+ _saveItemCommand.GetParameter(index++).Value = hasSeries.SeriesName;
+ }
+ else
+ {
+ _saveItemCommand.GetParameter(index++).Value = null;
+ }
+
_saveItemCommand.Transaction = transaction;
_saveItemCommand.ExecuteNonQuery();
@@ -1548,11 +1516,6 @@ namespace MediaBrowser.Server.Implementations.Persistence
private bool EnableJoinUserData(InternalItemsQuery query)
{
- if (_config.Configuration.SchemaVersion < 76)
- {
- return false;
- }
-
if (query.User == null)
{
return false;
@@ -1667,7 +1630,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
cmd.CommandText += whereText;
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += " Group by PresentationUniqueKey";
}
@@ -1755,7 +1718,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
cmd.CommandText += whereText;
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += " Group by PresentationUniqueKey";
}
@@ -1774,7 +1737,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
}
}
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += "; select count (distinct PresentationUniqueKey) from TypedBaseItems";
}
@@ -1924,7 +1887,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
cmd.CommandText += whereText;
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += " Group by PresentationUniqueKey";
}
@@ -1984,7 +1947,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
cmd.CommandText += whereText;
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += " Group by PresentationUniqueKey";
}
@@ -2067,7 +2030,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
cmd.CommandText += whereText;
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += " Group by PresentationUniqueKey";
}
@@ -2086,7 +2049,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
}
}
- if (EnableGroupByPresentationUniqueKey(query) && _config.Configuration.SchemaVersion >= 66)
+ if (EnableGroupByPresentationUniqueKey(query))
{
cmd.CommandText += "; select count (distinct PresentationUniqueKey) from TypedBaseItems";
}
@@ -2363,41 +2326,19 @@ namespace MediaBrowser.Server.Implementations.Persistence
if (!string.IsNullOrWhiteSpace(query.SlugName))
{
- if (_config.Configuration.SchemaVersion >= 70)
- {
- whereClauses.Add("SlugName=@SlugName");
- }
- else
- {
- whereClauses.Add("Name=@SlugName");
- }
+ whereClauses.Add("SlugName=@SlugName");
cmd.Parameters.Add(cmd, "@SlugName", DbType.String).Value = query.SlugName;
}
if (!string.IsNullOrWhiteSpace(query.Name))
{
- if (_config.Configuration.SchemaVersion >= 66)
- {
- whereClauses.Add("CleanName=@Name");
- cmd.Parameters.Add(cmd, "@Name", DbType.String).Value = query.Name.RemoveDiacritics();
- }
- else
- {
- whereClauses.Add("Name=@Name");
- cmd.Parameters.Add(cmd, "@Name", DbType.String).Value = query.Name;
- }
+ whereClauses.Add("CleanName=@Name");
+ cmd.Parameters.Add(cmd, "@Name", DbType.String).Value = query.Name.RemoveDiacritics();
}
if (!string.IsNullOrWhiteSpace(query.NameContains))
{
- if (_config.Configuration.SchemaVersion >= 66)
- {
- whereClauses.Add("CleanName like @NameContains");
- }
- else
- {
- whereClauses.Add("Name like @NameContains");
- }
+ whereClauses.Add("CleanName like @NameContains");
cmd.Parameters.Add(cmd, "@NameContains", DbType.String).Value = "%" + query.NameContains.RemoveDiacritics() + "%";
}
if (!string.IsNullOrWhiteSpace(query.NameStartsWith))