mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-10-31 02:27:18 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			241 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
|         }
 | |
|     }
 | |
| }
 |