From e890c056606db2f70a5cafb4d3224bd552318714 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 15 Apr 2020 00:33:52 +0200 Subject: [PATCH] Adding unique & index field to slugs --- Kyoo/Models/DatabaseContext.cs | 20 +++++++++++ ....cs => 20200414223325_Initial.Designer.cs} | 20 ++++++++++- ...8_Initial.cs => 20200414223325_Initial.cs} | 36 +++++++++++++++++++ .../Internal/DatabaseContextModelSnapshot.cs | 18 ++++++++++ Kyoo/Startup.cs | 4 +-- 5 files changed, 95 insertions(+), 3 deletions(-) rename Kyoo/Models/DatabaseMigrations/Internal/{20200413152648_Initial.Designer.cs => 20200414223325_Initial.Designer.cs} (96%) rename Kyoo/Models/DatabaseMigrations/Internal/{20200413152648_Initial.cs => 20200414223325_Initial.cs} (94%) diff --git a/Kyoo/Models/DatabaseContext.cs b/Kyoo/Models/DatabaseContext.cs index f0d270d8..87c6f012 100644 --- a/Kyoo/Models/DatabaseContext.cs +++ b/Kyoo/Models/DatabaseContext.cs @@ -124,6 +124,26 @@ namespace Kyoo .Ignore(x => x.Name); modelBuilder.Entity() .Ignore(x => x.ExternalIDs); + + + modelBuilder.Entity() + .HasIndex(x => x.Slug) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(x => x.Slug) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(x => x.Slug) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(x => x.Slug) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(x => x.Slug) + .IsUnique(); + modelBuilder.Entity() + .HasIndex(x => x.Slug) + .IsUnique(); } } } diff --git a/Kyoo/Models/DatabaseMigrations/Internal/20200413152648_Initial.Designer.cs b/Kyoo/Models/DatabaseMigrations/Internal/20200414223325_Initial.Designer.cs similarity index 96% rename from Kyoo/Models/DatabaseMigrations/Internal/20200413152648_Initial.Designer.cs rename to Kyoo/Models/DatabaseMigrations/Internal/20200414223325_Initial.Designer.cs index eff11353..b99b1e99 100644 --- a/Kyoo/Models/DatabaseMigrations/Internal/20200413152648_Initial.Designer.cs +++ b/Kyoo/Models/DatabaseMigrations/Internal/20200414223325_Initial.Designer.cs @@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Kyoo.Models.DatabaseMigrations.Internal { [DbContext(typeof(DatabaseContext))] - [Migration("20200413152648_Initial")] + [Migration("20200414223325_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -41,6 +41,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Collections"); }); @@ -130,6 +133,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Genres"); }); @@ -168,6 +174,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Libraries"); }); @@ -213,6 +222,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("Slug"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Peoples"); }); @@ -333,6 +345,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.HasIndex("StudioID"); b.ToTable("Shows"); @@ -352,6 +367,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Studios"); }); diff --git a/Kyoo/Models/DatabaseMigrations/Internal/20200413152648_Initial.cs b/Kyoo/Models/DatabaseMigrations/Internal/20200414223325_Initial.cs similarity index 94% rename from Kyoo/Models/DatabaseMigrations/Internal/20200413152648_Initial.cs rename to Kyoo/Models/DatabaseMigrations/Internal/20200414223325_Initial.cs index b3b6d925..7cb6e284 100644 --- a/Kyoo/Models/DatabaseMigrations/Internal/20200413152648_Initial.cs +++ b/Kyoo/Models/DatabaseMigrations/Internal/20200414223325_Initial.cs @@ -325,6 +325,12 @@ namespace Kyoo.Models.DatabaseMigrations.Internal table: "CollectionLinks", column: "ShowID"); + migrationBuilder.CreateIndex( + name: "IX_Collections_Slug", + table: "Collections", + column: "Slug", + unique: true); + migrationBuilder.CreateIndex( name: "IX_Episodes_SeasonID", table: "Episodes", @@ -340,6 +346,18 @@ namespace Kyoo.Models.DatabaseMigrations.Internal table: "GenreLinks", column: "GenreID"); + migrationBuilder.CreateIndex( + name: "IX_Genres_Slug", + table: "Genres", + column: "Slug", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_Libraries_Slug", + table: "Libraries", + column: "Slug", + unique: true); + migrationBuilder.CreateIndex( name: "IX_LibraryLinks_CollectionID", table: "LibraryLinks", @@ -365,16 +383,34 @@ namespace Kyoo.Models.DatabaseMigrations.Internal table: "PeopleLinks", column: "ShowID"); + migrationBuilder.CreateIndex( + name: "IX_Peoples_Slug", + table: "Peoples", + column: "Slug", + unique: true); + migrationBuilder.CreateIndex( name: "IX_Seasons_ShowID", table: "Seasons", column: "ShowID"); + migrationBuilder.CreateIndex( + name: "IX_Shows_Slug", + table: "Shows", + column: "Slug", + unique: true); + migrationBuilder.CreateIndex( name: "IX_Shows_StudioID", table: "Shows", column: "StudioID"); + migrationBuilder.CreateIndex( + name: "IX_Studios_Slug", + table: "Studios", + column: "Slug", + unique: true); + migrationBuilder.CreateIndex( name: "IX_Tracks_EpisodeID", table: "Tracks", diff --git a/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs b/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs index 3e71efe2..24fbf303 100644 --- a/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs +++ b/Kyoo/Models/DatabaseMigrations/Internal/DatabaseContextModelSnapshot.cs @@ -39,6 +39,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Collections"); }); @@ -128,6 +131,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Genres"); }); @@ -166,6 +172,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Libraries"); }); @@ -211,6 +220,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("Slug"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Peoples"); }); @@ -331,6 +343,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.HasIndex("StudioID"); b.ToTable("Shows"); @@ -350,6 +365,9 @@ namespace Kyoo.Models.DatabaseMigrations.Internal b.HasKey("ID"); + b.HasIndex("Slug") + .IsUnique(); + b.ToTable("Studios"); }); diff --git a/Kyoo/Startup.cs b/Kyoo/Startup.cs index 4115bf34..4b944e35 100644 --- a/Kyoo/Startup.cs +++ b/Kyoo/Startup.cs @@ -52,8 +52,8 @@ namespace Kyoo services.AddDbContext(options => { options.UseLazyLoadingProxies() - .UseSqlite(_configuration.GetConnectionString("Database")) - .UseLoggerFactory(LoggerFactory.Create(builder => builder.AddConsole())); + .UseSqlite(_configuration.GetConnectionString("Database")); + //.UseLoggerFactory(LoggerFactory.Create(builder => builder.AddConsole())); }); services.AddDbContext(options =>