mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
1107 lines
57 KiB
C#
1107 lines
57 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
#nullable disable
|
|
|
|
namespace Jellyfin.Database.Providers.PgSql.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class InitMigration : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "ActivityLogs",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
Name = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false),
|
|
Overview = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: true),
|
|
ShortOverview = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: true),
|
|
Type = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
DateCreated = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
LogSeverity = table.Column<int>(type: "integer", nullable: false),
|
|
RowVersion = table.Column<long>(type: "bigint", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ActivityLogs", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ApiKeys",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
DateCreated = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
DateLastActivity = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
Name = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
AccessToken = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ApiKeys", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "BaseItems",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Type = table.Column<string>(type: "text", nullable: false),
|
|
Data = table.Column<string>(type: "text", nullable: true),
|
|
Path = table.Column<string>(type: "text", nullable: true),
|
|
StartDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
EndDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
ChannelId = table.Column<string>(type: "text", nullable: true),
|
|
IsMovie = table.Column<bool>(type: "boolean", nullable: false),
|
|
CommunityRating = table.Column<float>(type: "real", nullable: true),
|
|
CustomRating = table.Column<string>(type: "text", nullable: true),
|
|
IndexNumber = table.Column<int>(type: "integer", nullable: true),
|
|
IsLocked = table.Column<bool>(type: "boolean", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: true),
|
|
OfficialRating = table.Column<string>(type: "text", nullable: true),
|
|
MediaType = table.Column<string>(type: "text", nullable: true),
|
|
Overview = table.Column<string>(type: "text", nullable: true),
|
|
ParentIndexNumber = table.Column<int>(type: "integer", nullable: true),
|
|
PremiereDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
ProductionYear = table.Column<int>(type: "integer", nullable: true),
|
|
Genres = table.Column<string>(type: "text", nullable: true),
|
|
SortName = table.Column<string>(type: "text", nullable: true),
|
|
ForcedSortName = table.Column<string>(type: "text", nullable: true),
|
|
RunTimeTicks = table.Column<long>(type: "bigint", nullable: true),
|
|
DateCreated = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DateModified = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
IsSeries = table.Column<bool>(type: "boolean", nullable: false),
|
|
EpisodeTitle = table.Column<string>(type: "text", nullable: true),
|
|
IsRepeat = table.Column<bool>(type: "boolean", nullable: false),
|
|
PreferredMetadataLanguage = table.Column<string>(type: "text", nullable: true),
|
|
PreferredMetadataCountryCode = table.Column<string>(type: "text", nullable: true),
|
|
DateLastRefreshed = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
DateLastSaved = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
IsInMixedFolder = table.Column<bool>(type: "boolean", nullable: false),
|
|
Studios = table.Column<string>(type: "text", nullable: true),
|
|
ExternalServiceId = table.Column<string>(type: "text", nullable: true),
|
|
Tags = table.Column<string>(type: "text", nullable: true),
|
|
IsFolder = table.Column<bool>(type: "boolean", nullable: false),
|
|
InheritedParentalRatingValue = table.Column<int>(type: "integer", nullable: true),
|
|
UnratedType = table.Column<string>(type: "text", nullable: true),
|
|
CriticRating = table.Column<float>(type: "real", nullable: true),
|
|
CleanName = table.Column<string>(type: "text", nullable: true),
|
|
PresentationUniqueKey = table.Column<string>(type: "text", nullable: true),
|
|
OriginalTitle = table.Column<string>(type: "text", nullable: true),
|
|
PrimaryVersionId = table.Column<string>(type: "text", nullable: true),
|
|
DateLastMediaAdded = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
Album = table.Column<string>(type: "text", nullable: true),
|
|
LUFS = table.Column<float>(type: "real", nullable: true),
|
|
NormalizationGain = table.Column<float>(type: "real", nullable: true),
|
|
IsVirtualItem = table.Column<bool>(type: "boolean", nullable: false),
|
|
SeriesName = table.Column<string>(type: "text", nullable: true),
|
|
SeasonName = table.Column<string>(type: "text", nullable: true),
|
|
ExternalSeriesId = table.Column<string>(type: "text", nullable: true),
|
|
Tagline = table.Column<string>(type: "text", nullable: true),
|
|
ProductionLocations = table.Column<string>(type: "text", nullable: true),
|
|
ExtraIds = table.Column<string>(type: "text", nullable: true),
|
|
TotalBitrate = table.Column<int>(type: "integer", nullable: true),
|
|
ExtraType = table.Column<int>(type: "integer", nullable: true),
|
|
Artists = table.Column<string>(type: "text", nullable: true),
|
|
AlbumArtists = table.Column<string>(type: "text", nullable: true),
|
|
ExternalId = table.Column<string>(type: "text", nullable: true),
|
|
SeriesPresentationUniqueKey = table.Column<string>(type: "text", nullable: true),
|
|
ShowId = table.Column<string>(type: "text", nullable: true),
|
|
OwnerId = table.Column<string>(type: "text", nullable: true),
|
|
Width = table.Column<int>(type: "integer", nullable: true),
|
|
Height = table.Column<int>(type: "integer", nullable: true),
|
|
Size = table.Column<long>(type: "bigint", nullable: true),
|
|
Audio = table.Column<int>(type: "integer", nullable: true),
|
|
ParentId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
TopParentId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
SeasonId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
SeriesId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_BaseItems", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CustomItemDisplayPreferences",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Client = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
|
|
Key = table.Column<string>(type: "text", nullable: false),
|
|
Value = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CustomItemDisplayPreferences", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "DeviceOptions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
DeviceId = table.Column<string>(type: "text", nullable: false),
|
|
CustomName = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_DeviceOptions", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ItemValues",
|
|
columns: table => new
|
|
{
|
|
ItemValueId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
Value = table.Column<string>(type: "text", nullable: false),
|
|
CleanValue = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ItemValues", x => x.ItemValueId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "MediaSegments",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
EndTicks = table.Column<long>(type: "bigint", nullable: false),
|
|
StartTicks = table.Column<long>(type: "bigint", nullable: false),
|
|
SegmentProviderId = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_MediaSegments", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Peoples",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
PersonType = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Peoples", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "TrickplayInfos",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Width = table.Column<int>(type: "integer", nullable: false),
|
|
Height = table.Column<int>(type: "integer", nullable: false),
|
|
TileWidth = table.Column<int>(type: "integer", nullable: false),
|
|
TileHeight = table.Column<int>(type: "integer", nullable: false),
|
|
ThumbnailCount = table.Column<int>(type: "integer", nullable: false),
|
|
Interval = table.Column<int>(type: "integer", nullable: false),
|
|
Bandwidth = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_TrickplayInfos", x => new { x.ItemId, x.Width });
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Users",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Username = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
|
|
Password = table.Column<string>(type: "character varying(65535)", maxLength: 65535, nullable: true),
|
|
MustUpdatePassword = table.Column<bool>(type: "boolean", nullable: false),
|
|
AudioLanguagePreference = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: true),
|
|
AuthenticationProviderId = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
|
|
PasswordResetProviderId = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: false),
|
|
InvalidLoginAttemptCount = table.Column<int>(type: "integer", nullable: false),
|
|
LastActivityDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
LastLoginDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
LoginAttemptsBeforeLockout = table.Column<int>(type: "integer", nullable: true),
|
|
MaxActiveSessions = table.Column<int>(type: "integer", nullable: false),
|
|
SubtitleMode = table.Column<int>(type: "integer", nullable: false),
|
|
PlayDefaultAudioTrack = table.Column<bool>(type: "boolean", nullable: false),
|
|
SubtitleLanguagePreference = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: true),
|
|
DisplayMissingEpisodes = table.Column<bool>(type: "boolean", nullable: false),
|
|
DisplayCollectionsView = table.Column<bool>(type: "boolean", nullable: false),
|
|
EnableLocalPassword = table.Column<bool>(type: "boolean", nullable: false),
|
|
HidePlayedInLatest = table.Column<bool>(type: "boolean", nullable: false),
|
|
RememberAudioSelections = table.Column<bool>(type: "boolean", nullable: false),
|
|
RememberSubtitleSelections = table.Column<bool>(type: "boolean", nullable: false),
|
|
EnableNextEpisodeAutoPlay = table.Column<bool>(type: "boolean", nullable: false),
|
|
EnableAutoLogin = table.Column<bool>(type: "boolean", nullable: false),
|
|
EnableUserPreferenceAccess = table.Column<bool>(type: "boolean", nullable: false),
|
|
MaxParentalAgeRating = table.Column<int>(type: "integer", nullable: true),
|
|
RemoteClientBitrateLimit = table.Column<int>(type: "integer", nullable: true),
|
|
InternalId = table.Column<long>(type: "bigint", nullable: false),
|
|
SyncPlayAccess = table.Column<int>(type: "integer", nullable: false),
|
|
CastReceiverId = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
|
|
RowVersion = table.Column<long>(type: "bigint", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Users", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AncestorIds",
|
|
columns: table => new
|
|
{
|
|
ParentItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AncestorIds", x => new { x.ItemId, x.ParentItemId });
|
|
table.ForeignKey(
|
|
name: "FK_AncestorIds_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_AncestorIds_BaseItems_ParentItemId",
|
|
column: x => x.ParentItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AttachmentStreamInfos",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Index = table.Column<int>(type: "integer", nullable: false),
|
|
Codec = table.Column<string>(type: "text", nullable: false),
|
|
CodecTag = table.Column<string>(type: "text", nullable: true),
|
|
Comment = table.Column<string>(type: "text", nullable: true),
|
|
Filename = table.Column<string>(type: "text", nullable: true),
|
|
MimeType = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AttachmentStreamInfos", x => new { x.ItemId, x.Index });
|
|
table.ForeignKey(
|
|
name: "FK_AttachmentStreamInfos_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "BaseItemImageInfos",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Path = table.Column<string>(type: "text", nullable: false),
|
|
DateModified = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
ImageType = table.Column<int>(type: "integer", nullable: false),
|
|
Width = table.Column<int>(type: "integer", nullable: false),
|
|
Height = table.Column<int>(type: "integer", nullable: false),
|
|
Blurhash = table.Column<byte[]>(type: "bytea", nullable: true),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_BaseItemImageInfos", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_BaseItemImageInfos_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "BaseItemMetadataFields",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_BaseItemMetadataFields", x => new { x.Id, x.ItemId });
|
|
table.ForeignKey(
|
|
name: "FK_BaseItemMetadataFields_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "BaseItemProviders",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ProviderId = table.Column<string>(type: "text", nullable: false),
|
|
ProviderValue = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_BaseItemProviders", x => new { x.ItemId, x.ProviderId });
|
|
table.ForeignKey(
|
|
name: "FK_BaseItemProviders_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "BaseItemTrailerTypes",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_BaseItemTrailerTypes", x => new { x.Id, x.ItemId });
|
|
table.ForeignKey(
|
|
name: "FK_BaseItemTrailerTypes_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Chapters",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ChapterIndex = table.Column<int>(type: "integer", nullable: false),
|
|
StartPositionTicks = table.Column<long>(type: "bigint", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: true),
|
|
ImagePath = table.Column<string>(type: "text", nullable: true),
|
|
ImageDateModified = table.Column<DateTime>(type: "timestamp with time zone", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Chapters", x => new { x.ItemId, x.ChapterIndex });
|
|
table.ForeignKey(
|
|
name: "FK_Chapters_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "MediaStreamInfos",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
StreamIndex = table.Column<int>(type: "integer", nullable: false),
|
|
StreamType = table.Column<int>(type: "integer", nullable: false),
|
|
Codec = table.Column<string>(type: "text", nullable: true),
|
|
Language = table.Column<string>(type: "text", nullable: true),
|
|
ChannelLayout = table.Column<string>(type: "text", nullable: true),
|
|
Profile = table.Column<string>(type: "text", nullable: true),
|
|
AspectRatio = table.Column<string>(type: "text", nullable: true),
|
|
Path = table.Column<string>(type: "text", nullable: true),
|
|
IsInterlaced = table.Column<bool>(type: "boolean", nullable: true),
|
|
BitRate = table.Column<int>(type: "integer", nullable: true),
|
|
Channels = table.Column<int>(type: "integer", nullable: true),
|
|
SampleRate = table.Column<int>(type: "integer", nullable: true),
|
|
IsDefault = table.Column<bool>(type: "boolean", nullable: false),
|
|
IsForced = table.Column<bool>(type: "boolean", nullable: false),
|
|
IsExternal = table.Column<bool>(type: "boolean", nullable: false),
|
|
Height = table.Column<int>(type: "integer", nullable: true),
|
|
Width = table.Column<int>(type: "integer", nullable: true),
|
|
AverageFrameRate = table.Column<float>(type: "real", nullable: true),
|
|
RealFrameRate = table.Column<float>(type: "real", nullable: true),
|
|
Level = table.Column<float>(type: "real", nullable: true),
|
|
PixelFormat = table.Column<string>(type: "text", nullable: true),
|
|
BitDepth = table.Column<int>(type: "integer", nullable: true),
|
|
IsAnamorphic = table.Column<bool>(type: "boolean", nullable: true),
|
|
RefFrames = table.Column<int>(type: "integer", nullable: true),
|
|
CodecTag = table.Column<string>(type: "text", nullable: true),
|
|
Comment = table.Column<string>(type: "text", nullable: true),
|
|
NalLengthSize = table.Column<string>(type: "text", nullable: true),
|
|
IsAvc = table.Column<bool>(type: "boolean", nullable: true),
|
|
Title = table.Column<string>(type: "text", nullable: true),
|
|
TimeBase = table.Column<string>(type: "text", nullable: true),
|
|
CodecTimeBase = table.Column<string>(type: "text", nullable: true),
|
|
ColorPrimaries = table.Column<string>(type: "text", nullable: true),
|
|
ColorSpace = table.Column<string>(type: "text", nullable: true),
|
|
ColorTransfer = table.Column<string>(type: "text", nullable: true),
|
|
DvVersionMajor = table.Column<int>(type: "integer", nullable: true),
|
|
DvVersionMinor = table.Column<int>(type: "integer", nullable: true),
|
|
DvProfile = table.Column<int>(type: "integer", nullable: true),
|
|
DvLevel = table.Column<int>(type: "integer", nullable: true),
|
|
RpuPresentFlag = table.Column<int>(type: "integer", nullable: true),
|
|
ElPresentFlag = table.Column<int>(type: "integer", nullable: true),
|
|
BlPresentFlag = table.Column<int>(type: "integer", nullable: true),
|
|
DvBlSignalCompatibilityId = table.Column<int>(type: "integer", nullable: true),
|
|
IsHearingImpaired = table.Column<bool>(type: "boolean", nullable: true),
|
|
Rotation = table.Column<int>(type: "integer", nullable: true),
|
|
KeyFrames = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_MediaStreamInfos", x => new { x.ItemId, x.StreamIndex });
|
|
table.ForeignKey(
|
|
name: "FK_MediaStreamInfos_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ItemValuesMap",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemValueId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ItemValuesMap", x => new { x.ItemValueId, x.ItemId });
|
|
table.ForeignKey(
|
|
name: "FK_ItemValuesMap_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_ItemValuesMap_ItemValues_ItemValueId",
|
|
column: x => x.ItemValueId,
|
|
principalTable: "ItemValues",
|
|
principalColumn: "ItemValueId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PeopleBaseItemMap",
|
|
columns: table => new
|
|
{
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
PeopleId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
SortOrder = table.Column<int>(type: "integer", nullable: true),
|
|
ListOrder = table.Column<int>(type: "integer", nullable: true),
|
|
Role = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PeopleBaseItemMap", x => new { x.ItemId, x.PeopleId });
|
|
table.ForeignKey(
|
|
name: "FK_PeopleBaseItemMap_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_PeopleBaseItemMap_Peoples_PeopleId",
|
|
column: x => x.PeopleId,
|
|
principalTable: "Peoples",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AccessSchedules",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
DayOfWeek = table.Column<int>(type: "integer", nullable: false),
|
|
StartHour = table.Column<double>(type: "double precision", nullable: false),
|
|
EndHour = table.Column<double>(type: "double precision", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AccessSchedules", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_AccessSchedules_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Devices",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
AccessToken = table.Column<string>(type: "text", nullable: false),
|
|
AppName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
AppVersion = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
|
|
DeviceName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
DeviceId = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
|
IsActive = table.Column<bool>(type: "boolean", nullable: false),
|
|
DateCreated = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
DateModified = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
DateLastActivity = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Devices", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Devices_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "DisplayPreferences",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Client = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
|
|
ShowSidebar = table.Column<bool>(type: "boolean", nullable: false),
|
|
ShowBackdrop = table.Column<bool>(type: "boolean", nullable: false),
|
|
ScrollDirection = table.Column<int>(type: "integer", nullable: false),
|
|
IndexBy = table.Column<int>(type: "integer", nullable: true),
|
|
SkipForwardLength = table.Column<int>(type: "integer", nullable: false),
|
|
SkipBackwardLength = table.Column<int>(type: "integer", nullable: false),
|
|
ChromecastVersion = table.Column<int>(type: "integer", nullable: false),
|
|
EnableNextVideoInfoOverlay = table.Column<bool>(type: "boolean", nullable: false),
|
|
DashboardTheme = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
|
|
TvHome = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_DisplayPreferences", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_DisplayPreferences_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ImageInfos",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
Path = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false),
|
|
LastModified = table.Column<DateTime>(type: "timestamp with time zone", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ImageInfos", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_ImageInfos_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ItemDisplayPreferences",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Client = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
|
|
ViewType = table.Column<int>(type: "integer", nullable: false),
|
|
RememberIndexing = table.Column<bool>(type: "boolean", nullable: false),
|
|
IndexBy = table.Column<int>(type: "integer", nullable: true),
|
|
RememberSorting = table.Column<bool>(type: "boolean", nullable: false),
|
|
SortBy = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
|
SortOrder = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ItemDisplayPreferences", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_ItemDisplayPreferences_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Permissions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
Kind = table.Column<int>(type: "integer", nullable: false),
|
|
Value = table.Column<bool>(type: "boolean", nullable: false),
|
|
RowVersion = table.Column<long>(type: "bigint", nullable: false),
|
|
Permission_Permissions_Guid = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Permissions", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Permissions_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Preferences",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
Kind = table.Column<int>(type: "integer", nullable: false),
|
|
Value = table.Column<string>(type: "character varying(65535)", maxLength: 65535, nullable: false),
|
|
RowVersion = table.Column<long>(type: "bigint", nullable: false),
|
|
Preference_Preferences_Guid = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Preferences", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Preferences_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "UserData",
|
|
columns: table => new
|
|
{
|
|
CustomDataKey = table.Column<string>(type: "text", nullable: false),
|
|
ItemId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Rating = table.Column<double>(type: "double precision", nullable: true),
|
|
PlaybackPositionTicks = table.Column<long>(type: "bigint", nullable: false),
|
|
PlayCount = table.Column<int>(type: "integer", nullable: false),
|
|
IsFavorite = table.Column<bool>(type: "boolean", nullable: false),
|
|
LastPlayedDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
|
Played = table.Column<bool>(type: "boolean", nullable: false),
|
|
AudioStreamIndex = table.Column<int>(type: "integer", nullable: true),
|
|
SubtitleStreamIndex = table.Column<int>(type: "integer", nullable: true),
|
|
Likes = table.Column<bool>(type: "boolean", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_UserData", x => new { x.ItemId, x.UserId, x.CustomDataKey });
|
|
table.ForeignKey(
|
|
name: "FK_UserData_BaseItems_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "BaseItems",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_UserData_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "HomeSection",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
DisplayPreferencesId = table.Column<int>(type: "integer", nullable: false),
|
|
Order = table.Column<int>(type: "integer", nullable: false),
|
|
Type = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_HomeSection", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_HomeSection_DisplayPreferences_DisplayPreferencesId",
|
|
column: x => x.DisplayPreferencesId,
|
|
principalTable: "DisplayPreferences",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AccessSchedules_UserId",
|
|
table: "AccessSchedules",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ActivityLogs_DateCreated",
|
|
table: "ActivityLogs",
|
|
column: "DateCreated");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AncestorIds_ParentItemId",
|
|
table: "AncestorIds",
|
|
column: "ParentItemId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ApiKeys_AccessToken",
|
|
table: "ApiKeys",
|
|
column: "AccessToken",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItemImageInfos_ItemId",
|
|
table: "BaseItemImageInfos",
|
|
column: "ItemId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItemMetadataFields_ItemId",
|
|
table: "BaseItemMetadataFields",
|
|
column: "ItemId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItemProviders_ProviderId_ProviderValue_ItemId",
|
|
table: "BaseItemProviders",
|
|
columns: new[] { "ProviderId", "ProviderValue", "ItemId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Id_Type_IsFolder_IsVirtualItem",
|
|
table: "BaseItems",
|
|
columns: new[] { "Id", "Type", "IsFolder", "IsVirtualItem" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_IsFolder_TopParentId_IsVirtualItem_PresentationUn~",
|
|
table: "BaseItems",
|
|
columns: new[] { "IsFolder", "TopParentId", "IsVirtualItem", "PresentationUniqueKey", "DateCreated" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_MediaType_TopParentId_IsVirtualItem_PresentationU~",
|
|
table: "BaseItems",
|
|
columns: new[] { "MediaType", "TopParentId", "IsVirtualItem", "PresentationUniqueKey" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_ParentId",
|
|
table: "BaseItems",
|
|
column: "ParentId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Path",
|
|
table: "BaseItems",
|
|
column: "Path");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_PresentationUniqueKey",
|
|
table: "BaseItems",
|
|
column: "PresentationUniqueKey");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_TopParentId_Id",
|
|
table: "BaseItems",
|
|
columns: new[] { "TopParentId", "Id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Type_SeriesPresentationUniqueKey_IsFolder_IsVirtu~",
|
|
table: "BaseItems",
|
|
columns: new[] { "Type", "SeriesPresentationUniqueKey", "IsFolder", "IsVirtualItem" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Type_SeriesPresentationUniqueKey_PresentationUniq~",
|
|
table: "BaseItems",
|
|
columns: new[] { "Type", "SeriesPresentationUniqueKey", "PresentationUniqueKey", "SortName" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Type_TopParentId_Id",
|
|
table: "BaseItems",
|
|
columns: new[] { "Type", "TopParentId", "Id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Type_TopParentId_IsVirtualItem_PresentationUnique~",
|
|
table: "BaseItems",
|
|
columns: new[] { "Type", "TopParentId", "IsVirtualItem", "PresentationUniqueKey", "DateCreated" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Type_TopParentId_PresentationUniqueKey",
|
|
table: "BaseItems",
|
|
columns: new[] { "Type", "TopParentId", "PresentationUniqueKey" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItems_Type_TopParentId_StartDate",
|
|
table: "BaseItems",
|
|
columns: new[] { "Type", "TopParentId", "StartDate" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_BaseItemTrailerTypes_ItemId",
|
|
table: "BaseItemTrailerTypes",
|
|
column: "ItemId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CustomItemDisplayPreferences_UserId_ItemId_Client_Key",
|
|
table: "CustomItemDisplayPreferences",
|
|
columns: new[] { "UserId", "ItemId", "Client", "Key" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeviceOptions_DeviceId",
|
|
table: "DeviceOptions",
|
|
column: "DeviceId",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Devices_AccessToken_DateLastActivity",
|
|
table: "Devices",
|
|
columns: new[] { "AccessToken", "DateLastActivity" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Devices_DeviceId",
|
|
table: "Devices",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Devices_DeviceId_DateLastActivity",
|
|
table: "Devices",
|
|
columns: new[] { "DeviceId", "DateLastActivity" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Devices_UserId_DeviceId",
|
|
table: "Devices",
|
|
columns: new[] { "UserId", "DeviceId" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DisplayPreferences_UserId_ItemId_Client",
|
|
table: "DisplayPreferences",
|
|
columns: new[] { "UserId", "ItemId", "Client" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_HomeSection_DisplayPreferencesId",
|
|
table: "HomeSection",
|
|
column: "DisplayPreferencesId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ImageInfos_UserId",
|
|
table: "ImageInfos",
|
|
column: "UserId",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ItemDisplayPreferences_UserId",
|
|
table: "ItemDisplayPreferences",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ItemValues_Type_CleanValue",
|
|
table: "ItemValues",
|
|
columns: new[] { "Type", "CleanValue" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ItemValuesMap_ItemId",
|
|
table: "ItemValuesMap",
|
|
column: "ItemId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_MediaStreamInfos_StreamIndex",
|
|
table: "MediaStreamInfos",
|
|
column: "StreamIndex");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_MediaStreamInfos_StreamIndex_StreamType",
|
|
table: "MediaStreamInfos",
|
|
columns: new[] { "StreamIndex", "StreamType" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_MediaStreamInfos_StreamIndex_StreamType_Language",
|
|
table: "MediaStreamInfos",
|
|
columns: new[] { "StreamIndex", "StreamType", "Language" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_MediaStreamInfos_StreamType",
|
|
table: "MediaStreamInfos",
|
|
column: "StreamType");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PeopleBaseItemMap_ItemId_ListOrder",
|
|
table: "PeopleBaseItemMap",
|
|
columns: new[] { "ItemId", "ListOrder" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PeopleBaseItemMap_ItemId_SortOrder",
|
|
table: "PeopleBaseItemMap",
|
|
columns: new[] { "ItemId", "SortOrder" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PeopleBaseItemMap_PeopleId",
|
|
table: "PeopleBaseItemMap",
|
|
column: "PeopleId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Peoples_Name",
|
|
table: "Peoples",
|
|
column: "Name");
|
|
|
|
// this was edited manually because "UserId" is a reserved name in pgsql
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Permissions_UserId_Kind",
|
|
table: "Permissions",
|
|
columns: new[] { "UserId", "Kind" },
|
|
unique: true,
|
|
filter: "\"Permissions\".\"UserId\" IS NOT NULL");
|
|
|
|
// this was edited manually because "UserId" is a reserved name in pgsql
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Preferences_UserId_Kind",
|
|
table: "Preferences",
|
|
columns: new[] { "UserId", "Kind" },
|
|
unique: true,
|
|
filter: "\"Preferences\".\"UserId\" IS NOT NULL");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserData_ItemId_UserId_IsFavorite",
|
|
table: "UserData",
|
|
columns: new[] { "ItemId", "UserId", "IsFavorite" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserData_ItemId_UserId_LastPlayedDate",
|
|
table: "UserData",
|
|
columns: new[] { "ItemId", "UserId", "LastPlayedDate" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserData_ItemId_UserId_PlaybackPositionTicks",
|
|
table: "UserData",
|
|
columns: new[] { "ItemId", "UserId", "PlaybackPositionTicks" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserData_ItemId_UserId_Played",
|
|
table: "UserData",
|
|
columns: new[] { "ItemId", "UserId", "Played" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserData_UserId",
|
|
table: "UserData",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Users_Username",
|
|
table: "Users",
|
|
column: "Username",
|
|
unique: true);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "AccessSchedules");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ActivityLogs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AncestorIds");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ApiKeys");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AttachmentStreamInfos");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "BaseItemImageInfos");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "BaseItemMetadataFields");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "BaseItemProviders");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "BaseItemTrailerTypes");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Chapters");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CustomItemDisplayPreferences");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "DeviceOptions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Devices");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "HomeSection");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ImageInfos");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ItemDisplayPreferences");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ItemValuesMap");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "MediaSegments");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "MediaStreamInfos");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PeopleBaseItemMap");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Permissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Preferences");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TrickplayInfos");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserData");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "DisplayPreferences");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ItemValues");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Peoples");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "BaseItems");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Users");
|
|
}
|
|
}
|
|
}
|