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.
55 lines
2.8 KiB
55 lines
2.8 KiB
using System.Globalization; |
|
using Microsoft.EntityFrameworkCore.Migrations; |
|
|
|
#nullable disable |
|
|
|
namespace ErsatzTV.Infrastructure.Sqlite.Migrations |
|
{ |
|
public partial class Sync_MediaStreamSubtitle : Migration |
|
{ |
|
protected override void Up(MigrationBuilder migrationBuilder) |
|
{ |
|
var now = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.FFFFFFF", CultureInfo.InvariantCulture); |
|
|
|
// delete all subtitles |
|
migrationBuilder.Sql("DELETE FROM Subtitle"); |
|
|
|
// sync media stream (kind == 3/subtitles) to subtitles table |
|
migrationBuilder.Sql( |
|
$@"INSERT INTO Subtitle (Codec, `Default`, Forced, Language, StreamIndex, SubtitleKind, DateAdded, DateUpdated, EpisodeMetadataId) |
|
SELECT Codec, `Default`, Forced, Language, `Index`, 0, '{now}', '{now}', EM.Id |
|
FROM MediaStream |
|
INNER JOIN MediaVersion MV on MV.Id = MediaStream.MediaVersionId |
|
INNER JOIN EpisodeMetadata EM on MV.EpisodeId = EM.EpisodeId |
|
WHERE MediaStreamKind = 3"); |
|
|
|
migrationBuilder.Sql( |
|
$@"INSERT INTO Subtitle (Codec, `Default`, Forced, Language, StreamIndex, SubtitleKind, DateAdded, DateUpdated, MovieMetadataId) |
|
SELECT Codec, `Default`, Forced, Language, `Index`, 0, '{now}', '{now}', MM.Id |
|
FROM MediaStream |
|
INNER JOIN MediaVersion MV on MV.Id = MediaStream.MediaVersionId |
|
INNER JOIN MovieMetadata MM on MV.MovieId = MM.MovieId |
|
WHERE MediaStreamKind = 3"); |
|
|
|
migrationBuilder.Sql( |
|
$@"INSERT INTO Subtitle (Codec, `Default`, Forced, Language, StreamIndex, SubtitleKind, DateAdded, DateUpdated, MusicVideoMetadataId) |
|
SELECT Codec, `Default`, Forced, Language, `Index`, 0, '{now}', '{now}', MVM.Id |
|
FROM MediaStream |
|
INNER JOIN MediaVersion MV on MV.Id = MediaStream.MediaVersionId |
|
INNER JOIN MusicVideoMetadata MVM on MV.MusicVideoId = MVM.MusicVideoId |
|
WHERE MediaStreamKind = 3"); |
|
|
|
migrationBuilder.Sql( |
|
$@"INSERT INTO Subtitle (Codec, `Default`, Forced, Language, StreamIndex, SubtitleKind, DateAdded, DateUpdated, OtherVideoMetadataId) |
|
SELECT Codec, `Default`, Forced, Language, `Index`, 0, '{now}', '{now}', OVM.Id |
|
FROM MediaStream |
|
INNER JOIN MediaVersion MV on MV.Id = MediaStream.MediaVersionId |
|
INNER JOIN OtherVideoMetadata OVM on MV.OtherVideoId = OVM.OtherVideoId |
|
WHERE MediaStreamKind = 3"); |
|
} |
|
|
|
protected override void Down(MigrationBuilder migrationBuilder) |
|
{ |
|
} |
|
} |
|
}
|
|
|