mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.7 KiB
42 lines
1.7 KiB
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) |
|
{ |
|
} |
|
} |
|
}
|
|
|