* clean up genre, tag, studio orphans * enforce foreign keys at connection level * wip * fix fragment scroll offset * fix see all link for music videos * add fake artist metadata * not null artist id * add artist scanning * remove improperly named music videos * code cleanup * add artists to search results and collections * clean up music video metadata / artist * add artist view * show music videos on artist page * add music video artwork placeholder
43 lines
1.7 KiB
C#
43 lines
1.7 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
namespace ErsatzTV.Infrastructure.Migrations
|
|
{
|
|
public partial class Add_ArtistMetadata : Migration
|
|
{
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
var now = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.FFFFFFF");
|
|
|
|
migrationBuilder.Sql(
|
|
@"INSERT INTO MediaItem (LibraryPathId)
|
|
SELECT LibraryPath.Id FROM LibraryPath INNER JOIN Library L on LibraryPath.LibraryId = L.Id
|
|
WHERE MediaKind = 3");
|
|
|
|
migrationBuilder.Sql(
|
|
@"INSERT INTO Artist (Id)
|
|
SELECT MediaItem.Id FROM MediaItem
|
|
INNER JOIN LibraryPath LP on MediaItem.LibraryPathId = LP.Id
|
|
INNER JOIN Library L on LP.LibraryId = L.Id
|
|
WHERE MediaKind = 3 AND NOT EXISTS (SELECT Id FROM MusicVideo WHERE Id = MediaItem.Id)");
|
|
|
|
migrationBuilder.Sql(
|
|
$@"INSERT INTO ArtistMetadata (ArtistId, Title, DateAdded, DateUpdated, MetadataKind)
|
|
SELECT Id, '[FAKE ARTIST]', '{now}', '{now}', 0 FROM Artist");
|
|
|
|
migrationBuilder.Sql(
|
|
@"UPDATE MusicVideo SET ArtistId =
|
|
(SELECT Artist.Id FROM Artist
|
|
INNER JOIN MediaItem MIA on Artist.Id = MIA.Id
|
|
INNER JOIN MediaItem MIMV on MusicVideo.Id = MIMV.Id
|
|
INNER JOIN LibraryPath LPA on MIA.LibraryPathId = LPA.Id
|
|
INNER JOIN LibraryPath LPMV on MIMV.LibraryPathId = LPMV.Id
|
|
WHERE LPA.LibraryId = LPMV.LibraryId)");
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
}
|
|
}
|
|
}
|