jellyfin/Jellyfin.Server.Implementations/Migrations/20210320181425_AddIndexesAndCollations.cs
2021-03-25 19:51:27 -04:00

241 lines
8.4 KiB
C#

#pragma warning disable CS1591
#pragma warning disable SA1601
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace Jellyfin.Server.Implementations.Migrations
{
public partial class AddIndexesAndCollations : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_ImageInfos_Users_UserId",
schema: "jellyfin",
table: "ImageInfos");
migrationBuilder.DropForeignKey(
name: "FK_Permissions_Users_Permission_Permissions_Guid",
schema: "jellyfin",
table: "Permissions");
migrationBuilder.DropForeignKey(
name: "FK_Preferences_Users_Preference_Preferences_Guid",
schema: "jellyfin",
table: "Preferences");
migrationBuilder.DropIndex(
name: "IX_Preferences_Preference_Preferences_Guid",
schema: "jellyfin",
table: "Preferences");
migrationBuilder.DropIndex(
name: "IX_Permissions_Permission_Permissions_Guid",
schema: "jellyfin",
table: "Permissions");
migrationBuilder.DropIndex(
name: "IX_DisplayPreferences_UserId",
schema: "jellyfin",
table: "DisplayPreferences");
migrationBuilder.DropIndex(
name: "IX_CustomItemDisplayPreferences_UserId",
schema: "jellyfin",
table: "CustomItemDisplayPreferences");
migrationBuilder.AlterColumn<string>(
name: "Username",
schema: "jellyfin",
table: "Users",
type: "TEXT",
maxLength: 255,
nullable: false,
collation: "NOCASE",
oldClrType: typeof(string),
oldType: "TEXT",
oldMaxLength: 255);
migrationBuilder.AddColumn<Guid>(
name: "UserId",
schema: "jellyfin",
table: "Preferences",
type: "TEXT",
nullable: true);
migrationBuilder.AddColumn<Guid>(
name: "UserId",
schema: "jellyfin",
table: "Permissions",
type: "TEXT",
nullable: true);
migrationBuilder.Sql("UPDATE Preferences SET UserId = Preference_Preferences_Guid");
migrationBuilder.Sql("UPDATE Permissions SET UserId = Permission_Permissions_Guid");
migrationBuilder.CreateIndex(
name: "IX_Users_Username",
schema: "jellyfin",
table: "Users",
column: "Username",
unique: true);
migrationBuilder.CreateIndex(
name: "IX_Preferences_UserId_Kind",
schema: "jellyfin",
table: "Preferences",
columns: new[] { "UserId", "Kind" },
unique: true,
filter: "[UserId] IS NOT NULL");
migrationBuilder.CreateIndex(
name: "IX_Permissions_UserId_Kind",
schema: "jellyfin",
table: "Permissions",
columns: new[] { "UserId", "Kind" },
unique: true,
filter: "[UserId] IS NOT NULL");
migrationBuilder.AddForeignKey(
name: "FK_ImageInfos_Users_UserId",
schema: "jellyfin",
table: "ImageInfos",
column: "UserId",
principalSchema: "jellyfin",
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Permissions_Users_UserId",
schema: "jellyfin",
table: "Permissions",
column: "UserId",
principalSchema: "jellyfin",
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_Preferences_Users_UserId",
schema: "jellyfin",
table: "Preferences",
column: "UserId",
principalSchema: "jellyfin",
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_ImageInfos_Users_UserId",
schema: "jellyfin",
table: "ImageInfos");
migrationBuilder.DropForeignKey(
name: "FK_Permissions_Users_UserId",
schema: "jellyfin",
table: "Permissions");
migrationBuilder.DropForeignKey(
name: "FK_Preferences_Users_UserId",
schema: "jellyfin",
table: "Preferences");
migrationBuilder.DropIndex(
name: "IX_Users_Username",
schema: "jellyfin",
table: "Users");
migrationBuilder.DropIndex(
name: "IX_Preferences_UserId_Kind",
schema: "jellyfin",
table: "Preferences");
migrationBuilder.DropIndex(
name: "IX_Permissions_UserId_Kind",
schema: "jellyfin",
table: "Permissions");
migrationBuilder.DropColumn(
name: "UserId",
schema: "jellyfin",
table: "Preferences");
migrationBuilder.DropColumn(
name: "UserId",
schema: "jellyfin",
table: "Permissions");
migrationBuilder.AlterColumn<string>(
name: "Username",
schema: "jellyfin",
table: "Users",
type: "TEXT",
maxLength: 255,
nullable: false,
oldClrType: typeof(string),
oldType: "TEXT",
oldMaxLength: 255,
oldCollation: "NOCASE");
migrationBuilder.CreateIndex(
name: "IX_Preferences_Preference_Preferences_Guid",
schema: "jellyfin",
table: "Preferences",
column: "Preference_Preferences_Guid");
migrationBuilder.CreateIndex(
name: "IX_Permissions_Permission_Permissions_Guid",
schema: "jellyfin",
table: "Permissions",
column: "Permission_Permissions_Guid");
migrationBuilder.CreateIndex(
name: "IX_DisplayPreferences_UserId",
schema: "jellyfin",
table: "DisplayPreferences",
column: "UserId");
migrationBuilder.CreateIndex(
name: "IX_CustomItemDisplayPreferences_UserId",
schema: "jellyfin",
table: "CustomItemDisplayPreferences",
column: "UserId");
migrationBuilder.AddForeignKey(
name: "FK_ImageInfos_Users_UserId",
schema: "jellyfin",
table: "ImageInfos",
column: "UserId",
principalSchema: "jellyfin",
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Permissions_Users_Permission_Permissions_Guid",
schema: "jellyfin",
table: "Permissions",
column: "Permission_Permissions_Guid",
principalSchema: "jellyfin",
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_Preferences_Users_Preference_Preferences_Guid",
schema: "jellyfin",
table: "Preferences",
column: "Preference_Preferences_Guid",
principalSchema: "jellyfin",
principalTable: "Users",
principalColumn: "Id",
onDelete: ReferentialAction.Restrict);
}
}
}