Fixed: Failing database migration of metadata files without extensions

This commit is contained in:
Mark McDowall 2016-10-28 13:04:22 -07:00
parent 2ece05cd1e
commit 5f2aeb0cea
3 changed files with 14 additions and 2 deletions

View File

@ -33,6 +33,15 @@ namespace NzbDrone.Core.Test.Datastore.Migration
Type = 5, Type = 5,
Consumer = "XbmcMetadata" Consumer = "XbmcMetadata"
}); });
c.Insert.IntoTable("MetadataFiles").Row(new
{
SeriesId = 1,
RelativePath = "Series Title",
LastUpdated = "2016-05-30 20:23:02.3725923",
Type = 3,
Consumer = "RoksboxMetadata"
});
}); });
var items = db.Query<MetadataFile99>("SELECT * FROM MetadataFiles"); var items = db.Query<MetadataFile99>("SELECT * FROM MetadataFiles");

View File

@ -33,6 +33,9 @@ namespace NzbDrone.Core.Datastore.Migration
.AddColumn("Added").AsDateTime().Nullable() .AddColumn("Added").AsDateTime().Nullable()
.AddColumn("Extension").AsString().Nullable(); .AddColumn("Extension").AsString().Nullable();
// Remove Metadata files that don't have an extension
Execute.Sql("DELETE FROM MetadataFiles WHERE RelativePath NOT LIKE '%.%'");
// Set Extension using the extension from RelativePath // Set Extension using the extension from RelativePath
Execute.WithConnection(SetMetadataFileExtension); Execute.WithConnection(SetMetadataFileExtension);

View File

@ -195,7 +195,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Roksbox
} }
var source = _mediaCoverService.GetCoverPath(series.Id, image.CoverType); var source = _mediaCoverService.GetCoverPath(series.Id, image.CoverType);
var destination = Path.Combine(series.Path, Path.GetFileName(series.Path) + Path.GetExtension(source)); var destination = Path.GetFileName(series.Path) + Path.GetExtension(source);
return new List<ImageFileResult>{ new ImageFileResult(destination, source) }; return new List<ImageFileResult>{ new ImageFileResult(destination, source) };
} }
@ -220,7 +220,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Roksbox
} }
var filename = Path.GetFileName(seasonFolder) + ".jpg"; var filename = Path.GetFileName(seasonFolder) + ".jpg";
var path = Path.Combine(series.Path, seasonFolder, filename); var path = series.Path.GetRelativePath(Path.Combine(series.Path, seasonFolder, filename));
return new List<ImageFileResult> { new ImageFileResult(path, image.Url) }; return new List<ImageFileResult> { new ImageFileResult(path, image.Url) };
} }