Просмотр исходного кода

Use NOCASE collation and index on username field

Patrick Barron 4 лет назад
Родитель
Сommit
a07ad71222
1 измененных файлов с 13 добавлено и 0 удалено
  1. 13 0
      Jellyfin.Server.Implementations/JellyfinDb.cs

+ 13 - 0
Jellyfin.Server.Implementations/JellyfinDb.cs

@@ -149,6 +149,14 @@ namespace Jellyfin.Server.Implementations
 
 
             modelBuilder.HasDefaultSchema("jellyfin");
             modelBuilder.HasDefaultSchema("jellyfin");
 
 
+            // Collations
+
+            modelBuilder.Entity<User>()
+                .Property(user => user.Username)
+                .UseCollation("NOCASE");
+
+            // Delete behavior
+
             modelBuilder.Entity<User>()
             modelBuilder.Entity<User>()
                 .HasOne(u => u.ProfileImage)
                 .HasOne(u => u.ProfileImage)
                 .WithOne()
                 .WithOne()
@@ -174,6 +182,11 @@ namespace Jellyfin.Server.Implementations
                 .WithOne()
                 .WithOne()
                 .OnDelete(DeleteBehavior.Cascade);
                 .OnDelete(DeleteBehavior.Cascade);
 
 
+            // Indexes
+
+            modelBuilder.Entity<User>()
+                .HasIndex(entity => entity.Username)
+                .IsUnique();
 
 
             modelBuilder.Entity<DisplayPreferences>()
             modelBuilder.Entity<DisplayPreferences>()
                 .HasIndex(entity => new { entity.UserId, entity.ItemId, entity.Client })
                 .HasIndex(entity => new { entity.UserId, entity.ItemId, entity.Client })