mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-30 11:48:26 -07:00
Changed the db to represent compilations. By default a track will have a single albumId and a list of artistIds. If the album is a compilation, we will use Various Artists to align with Plex, iTunes, and Amazon.
This commit is contained in:
parent
118e2dfe93
commit
39b58ebda3
3 changed files with 8 additions and 18 deletions
|
@ -30,12 +30,11 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
;
|
||||
|
||||
Create.TableForModel("Albums")
|
||||
.WithColumn("AlbumId").AsInt32() // Does this map to collectionId?
|
||||
.WithColumn("CompilationId").AsInt32()
|
||||
.WithColumn("Compilation").AsBoolean()
|
||||
.WithColumn("AlbumId").AsInt32()
|
||||
.WithColumn("ArtistId").AsInt32()
|
||||
.WithColumn("Title").AsString()
|
||||
.WithColumn("Year").AsInt32()
|
||||
.WithColumn("Image").AsInt32() // Is this needed?
|
||||
.WithColumn("Image").AsInt32()
|
||||
.WithColumn("TrackCount").AsInt32()
|
||||
.WithColumn("DiscCount").AsInt32()
|
||||
.WithColumn("Monitored").AsBoolean();
|
||||
|
@ -43,8 +42,7 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
Create.TableForModel("Tracks")
|
||||
.WithColumn("ItunesTrackId").AsInt32().Unique()
|
||||
.WithColumn("AlbumId").AsInt32()
|
||||
.WithColumn("CompilationId").AsInt32().Nullable()
|
||||
.WithColumn("Compilation").AsBoolean().WithDefaultValue("False")
|
||||
.WithColumn("ArtistsId").AsString().Nullable()
|
||||
.WithColumn("TrackNumber").AsInt32()
|
||||
.WithColumn("Title").AsString().Nullable()
|
||||
.WithColumn("Ignored").AsBoolean().Nullable()
|
||||
|
@ -53,10 +51,7 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
.WithColumn("TrackCensoredName").AsString().Nullable()
|
||||
.WithColumn("TrackFileId").AsInt32().Nullable()
|
||||
.WithColumn("ReleaseDate").AsDateTime().Nullable();
|
||||
//.WithColumn("AbsoluteEpisodeNumber").AsInt32().Nullable()
|
||||
//.WithColumn("SceneAbsoluteEpisodeNumber").AsInt32().Nullable()
|
||||
//.WithColumn("SceneSeasonNumber").AsInt32().Nullable()
|
||||
//.WithColumn("SceneEpisodeNumber").AsInt32().Nullable();
|
||||
|
||||
|
||||
Create.TableForModel("TrackFiles")
|
||||
.WithColumn("ArtistId").AsInt32()
|
||||
|
@ -66,9 +61,6 @@ namespace NzbDrone.Core.Datastore.Migration
|
|||
.WithColumn("DateAdded").AsDateTime()
|
||||
.WithColumn("AlbumId").AsInt32(); // How does this impact stand alone tracks?
|
||||
|
||||
Create.TableForModel("Compilation")
|
||||
.WithColumn("CompilationId").AsInt32().Unique()
|
||||
.WithColumn("ArtistId").AsString().Nullable();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -103,17 +103,14 @@ namespace NzbDrone.Core.Datastore
|
|||
.For("Tracks")
|
||||
.LazyLoad(condition: parent => parent.Id > 0,
|
||||
query: (db, parent) => db.Query<Track>().Where(c => c.ItunesTrackId == parent.Id).ToList())
|
||||
.HasOne(file => file.Artist, file => file.AlbumId);
|
||||
.HasOne(file => file.Artist, file => file.AlbumId);
|
||||
|
||||
Mapper.Entity<Track>().RegisterModel("Tracks")
|
||||
//.Ignore(e => e.SeriesTitle)
|
||||
.Ignore(e => e.Album)
|
||||
.Ignore(e => e.HasFile)
|
||||
.Relationship()
|
||||
.HasOne(track => track.TrackFile, track => track.TrackFileId);
|
||||
|
||||
Mapper.Entity<Compilation>().RegisterModel("Compilation")
|
||||
.Relationships.AutoMapICollectionOrComplexProperties(); //TODO: Figure out how to map this Table
|
||||
.HasOne(track => track.TrackFile, track => track.TrackFileId); // TODO: Check lazy load for artists
|
||||
|
||||
Mapper.Entity<QualityDefinition>().RegisterModel("QualityDefinitions")
|
||||
.Ignore(d => d.Weight);
|
||||
|
|
|
@ -19,6 +19,7 @@ namespace NzbDrone.Core.Music
|
|||
|
||||
public int ItunesTrackId { get; set; }
|
||||
public int AlbumId { get; set; }
|
||||
public LazyLoaded<Artist> ArtistsId { get; set; }
|
||||
public int CompilationId { get; set; }
|
||||
public bool Compilation { get; set; }
|
||||
public int TrackNumber { get; set; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue