Files
ersatztv/ErsatzTV.Infrastructure/Migrations/20210407230353_Add_ArtistMetadata.cs
T
Jason DoveandGitHub 2b26a5411c add artists as owners of music videos (#154)
* 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
2021-04-09 05:10:58 -05:00

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)
{
}
}
}