mirror of
				https://github.com/Kareadita/Kavita.git
				synced 2025-11-04 03:27:05 -05:00 
			
		
		
		
	* Added a tooltip to inform user that format and collection filter selections do not only show for the selected library. * Refactored a lot of code around when we update chapter cover images. Applied an optimization for when we re-calculate volume/series covers, such that it only occurs when the first chapter's image updates. * Updated code to ensure only lastmodified gets refreshed in metadata since it always follows a scan * Optimized how metadata is populated on the series. Instead of re-reading the comicInfos, instead I read the data from the underlying chapter entities. This reduces N additional reads AND enables the ability in the future to show/edit chapter level metadata. * Spelling mistake * Fixed a concurency issue by not selecting Genres from DB. Added a test for long paths. * Fixed a bug in filter where collection tag wasn't populating on load * Cleaned up the logic for changelog to better compare against the installed verison. For nightly users, show the last stable as installed. * Removed some demo code * SplitQuery to allow loading tags much faster for series metadata load.
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using Microsoft.EntityFrameworkCore.Migrations;
 | 
						|
 | 
						|
#nullable disable
 | 
						|
 | 
						|
namespace API.Data.Migrations
 | 
						|
{
 | 
						|
    public partial class ChapterMetadataOptimization : Migration
 | 
						|
    {
 | 
						|
        protected override void Up(MigrationBuilder migrationBuilder)
 | 
						|
        {
 | 
						|
            migrationBuilder.DropForeignKey(
 | 
						|
                name: "FK_Chapter_Genre_GenreId",
 | 
						|
                table: "Chapter");
 | 
						|
 | 
						|
            migrationBuilder.DropIndex(
 | 
						|
                name: "IX_Chapter_GenreId",
 | 
						|
                table: "Chapter");
 | 
						|
 | 
						|
            migrationBuilder.DropColumn(
 | 
						|
                name: "GenreId",
 | 
						|
                table: "Chapter");
 | 
						|
 | 
						|
            migrationBuilder.DropColumn(
 | 
						|
                name: "FullscreenMode",
 | 
						|
                table: "AppUserPreferences");
 | 
						|
 | 
						|
            migrationBuilder.AddColumn<string>(
 | 
						|
                name: "Language",
 | 
						|
                table: "Chapter",
 | 
						|
                type: "TEXT",
 | 
						|
                nullable: true);
 | 
						|
 | 
						|
            migrationBuilder.AddColumn<string>(
 | 
						|
                name: "Summary",
 | 
						|
                table: "Chapter",
 | 
						|
                type: "TEXT",
 | 
						|
                nullable: true);
 | 
						|
 | 
						|
            migrationBuilder.CreateTable(
 | 
						|
                name: "ChapterGenre",
 | 
						|
                columns: table => new
 | 
						|
                {
 | 
						|
                    ChaptersId = table.Column<int>(type: "INTEGER", nullable: false),
 | 
						|
                    GenresId = table.Column<int>(type: "INTEGER", nullable: false)
 | 
						|
                },
 | 
						|
                constraints: table =>
 | 
						|
                {
 | 
						|
                    table.PrimaryKey("PK_ChapterGenre", x => new { x.ChaptersId, x.GenresId });
 | 
						|
                    table.ForeignKey(
 | 
						|
                        name: "FK_ChapterGenre_Chapter_ChaptersId",
 | 
						|
                        column: x => x.ChaptersId,
 | 
						|
                        principalTable: "Chapter",
 | 
						|
                        principalColumn: "Id",
 | 
						|
                        onDelete: ReferentialAction.Cascade);
 | 
						|
                    table.ForeignKey(
 | 
						|
                        name: "FK_ChapterGenre_Genre_GenresId",
 | 
						|
                        column: x => x.GenresId,
 | 
						|
                        principalTable: "Genre",
 | 
						|
                        principalColumn: "Id",
 | 
						|
                        onDelete: ReferentialAction.Cascade);
 | 
						|
                });
 | 
						|
 | 
						|
            migrationBuilder.CreateIndex(
 | 
						|
                name: "IX_ChapterGenre_GenresId",
 | 
						|
                table: "ChapterGenre",
 | 
						|
                column: "GenresId");
 | 
						|
        }
 | 
						|
 | 
						|
        protected override void Down(MigrationBuilder migrationBuilder)
 | 
						|
        {
 | 
						|
            migrationBuilder.DropTable(
 | 
						|
                name: "ChapterGenre");
 | 
						|
 | 
						|
            migrationBuilder.DropColumn(
 | 
						|
                name: "Language",
 | 
						|
                table: "Chapter");
 | 
						|
 | 
						|
            migrationBuilder.DropColumn(
 | 
						|
                name: "Summary",
 | 
						|
                table: "Chapter");
 | 
						|
 | 
						|
            migrationBuilder.AddColumn<int>(
 | 
						|
                name: "GenreId",
 | 
						|
                table: "Chapter",
 | 
						|
                type: "INTEGER",
 | 
						|
                nullable: true);
 | 
						|
 | 
						|
            migrationBuilder.AddColumn<int>(
 | 
						|
                name: "FullscreenMode",
 | 
						|
                table: "AppUserPreferences",
 | 
						|
                type: "INTEGER",
 | 
						|
                nullable: false,
 | 
						|
                defaultValue: 0);
 | 
						|
 | 
						|
            migrationBuilder.CreateIndex(
 | 
						|
                name: "IX_Chapter_GenreId",
 | 
						|
                table: "Chapter",
 | 
						|
                column: "GenreId");
 | 
						|
 | 
						|
            migrationBuilder.AddForeignKey(
 | 
						|
                name: "FK_Chapter_Genre_GenreId",
 | 
						|
                table: "Chapter",
 | 
						|
                column: "GenreId",
 | 
						|
                principalTable: "Genre",
 | 
						|
                principalColumn: "Id");
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |