318 lines
16 KiB
C#
318 lines
16 KiB
C#
using FluentMigrator;
|
|
using FluentMigrator.SqlServer;
|
|
using Nop.Core.Domain.Catalog;
|
|
using Nop.Core.Domain.Common;
|
|
using Nop.Core.Domain.Customers;
|
|
using Nop.Core.Domain.Directory;
|
|
using Nop.Core.Domain.Forums;
|
|
using Nop.Core.Domain.Localization;
|
|
using Nop.Core.Domain.Logging;
|
|
using Nop.Core.Domain.Messages;
|
|
using Nop.Core.Domain.Orders;
|
|
using Nop.Core.Domain.Security;
|
|
using Nop.Core.Domain.Seo;
|
|
using Nop.Core.Domain.Stores;
|
|
using Nop.Core.Domain.Topics;
|
|
using Nop.Data.Mapping;
|
|
|
|
namespace Nop.Data.Migrations.Installation;
|
|
|
|
[NopSchemaMigration("2020/03/13 09:36:08:9037677", "Nop.Data base indexes", MigrationProcessType.Installation)]
|
|
public class Indexes : ForwardOnlyMigration
|
|
{
|
|
#region Methods
|
|
|
|
public override void Up()
|
|
{
|
|
Create.Index("IX_UrlRecord_Slug")
|
|
.OnTable(nameof(UrlRecord))
|
|
.OnColumn(nameof(UrlRecord.Slug))
|
|
.Ascending()
|
|
.WithOptions()
|
|
.NonClustered();
|
|
|
|
Create.Index("IX_UrlRecord_Custom_1").OnTable(nameof(UrlRecord))
|
|
.OnColumn(nameof(UrlRecord.EntityId)).Ascending()
|
|
.OnColumn(nameof(UrlRecord.EntityName)).Ascending()
|
|
.OnColumn(nameof(UrlRecord.LanguageId)).Ascending()
|
|
.OnColumn(nameof(UrlRecord.IsActive)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_StoreMapping_EntityId_EntityName").OnTable(nameof(StoreMapping))
|
|
.OnColumn(nameof(StoreMapping.EntityId)).Ascending()
|
|
.OnColumn(nameof(StoreMapping.EntityName)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_ShoppingCartItem_ShoppingCartTypeId_CustomerId").OnTable(nameof(ShoppingCartItem))
|
|
.OnColumn(nameof(ShoppingCartItem.ShoppingCartTypeId)).Ascending()
|
|
.OnColumn(nameof(ShoppingCartItem.CustomerId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_RelatedProduct_ProductId1").OnTable(nameof(RelatedProduct))
|
|
.OnColumn(nameof(RelatedProduct.ProductId1)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_QueuedEmail_SentOnUtc_DontSendBeforeDateUtc_Extended").OnTable(nameof(QueuedEmail))
|
|
.OnColumn(nameof(QueuedEmail.SentOnUtc)).Ascending()
|
|
.OnColumn(nameof(QueuedEmail.DontSendBeforeDateUtc)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(QueuedEmail.SentTries));
|
|
|
|
Create.Index("IX_QueuedEmail_CreatedOnUtc").OnTable(nameof(QueuedEmail))
|
|
.OnColumn(nameof(QueuedEmail.CreatedOnUtc)).Descending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_PSAM_SpecificationAttributeOptionId_AllowFiltering").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductSpecificationAttribute)))
|
|
.OnColumn(nameof(ProductSpecificationAttribute.SpecificationAttributeOptionId)).Ascending()
|
|
.OnColumn(nameof(ProductSpecificationAttribute.AllowFiltering)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(ProductSpecificationAttribute.ProductId));
|
|
|
|
Create.Index("IX_PSAM_AllowFiltering").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductSpecificationAttribute)))
|
|
.OnColumn(nameof(ProductSpecificationAttribute.AllowFiltering)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(ProductSpecificationAttribute.ProductId))
|
|
.Include(nameof(ProductSpecificationAttribute.SpecificationAttributeOptionId));
|
|
|
|
Create.Index("IX_Product_VisibleIndividually_Published_Deleted_Extended").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.VisibleIndividually)).Ascending()
|
|
.OnColumn(nameof(Product.Published)).Ascending()
|
|
.OnColumn(nameof(Product.Deleted)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(Product.Id))
|
|
.Include(nameof(Product.AvailableStartDateTimeUtc))
|
|
.Include(nameof(Product.AvailableEndDateTimeUtc));
|
|
|
|
Create.Index("IX_Product_VisibleIndividually").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.VisibleIndividually)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_ProductTag_Name").OnTable(nameof(ProductTag))
|
|
.OnColumn(nameof(ProductTag.Name)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_Name").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.Name)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_SubjectToAcl").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.SubjectToAcl)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_ShowOnHomepage").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.ShowOnHomepage)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_Published").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.Published)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_ProductAttribute_Mapping_ProductId_DisplayOrder").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductAttributeMapping)))
|
|
.OnColumn(nameof(ProductAttributeMapping.ProductId)).Ascending()
|
|
.OnColumn(nameof(ProductAttributeMapping.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_PriceDatesEtc").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.Price)).Ascending()
|
|
.OnColumn(nameof(Product.AvailableStartDateTimeUtc)).Ascending()
|
|
.OnColumn(nameof(Product.AvailableEndDateTimeUtc)).Ascending()
|
|
.OnColumn(nameof(Product.Published)).Ascending()
|
|
.OnColumn(nameof(Product.Deleted)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_ParentGroupedProductId").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.ParentGroupedProductId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_Manufacturer_Mapping_IsFeaturedProduct")
|
|
.OnTable(NameCompatibilityManager.GetTableName(typeof(ProductManufacturer)))
|
|
.OnColumn(nameof(ProductManufacturer.IsFeaturedProduct)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_LimitedToStores").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.LimitedToStores)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_Delete_Id").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.Deleted)).Ascending()
|
|
.OnColumn(nameof(Product.Id)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_Deleted_and_Published").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.Published)).Ascending()
|
|
.OnColumn(nameof(Product.Deleted)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Product_Category_Mapping_IsFeaturedProduct").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductCategory)))
|
|
.OnColumn(nameof(ProductCategory.IsFeaturedProduct)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_ProductAttributeValue_ProductAttributeMappingId_DisplayOrder").OnTable(nameof(ProductAttributeValue))
|
|
.OnColumn(nameof(ProductAttributeValue.ProductAttributeMappingId)).Ascending()
|
|
.OnColumn(nameof(ProductAttributeValue.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_PMM_Product_and_Manufacturer").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductManufacturer)))
|
|
.OnColumn(nameof(ProductManufacturer.ManufacturerId)).Ascending()
|
|
.OnColumn(nameof(ProductManufacturer.ProductId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_PMM_ProductId_Extended").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductManufacturer)))
|
|
.OnColumn(nameof(ProductManufacturer.ProductId)).Ascending()
|
|
.OnColumn(nameof(ProductManufacturer.IsFeaturedProduct)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(ProductManufacturer.ManufacturerId));
|
|
|
|
Create.Index("IX_PCM_ProductId_Extended").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductCategory)))
|
|
.OnColumn(nameof(ProductCategory.ProductId)).Ascending()
|
|
.OnColumn(nameof(ProductCategory.IsFeaturedProduct)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(ProductCategory.CategoryId));
|
|
|
|
Create.Index("IX_PCM_Product_and_Category").OnTable(NameCompatibilityManager.GetTableName(typeof(ProductCategory)))
|
|
.OnColumn(nameof(ProductCategory.CategoryId)).Ascending()
|
|
.OnColumn(nameof(ProductCategory.ProductId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Order_CreatedOnUtc").OnTable(nameof(Order))
|
|
.OnColumn(nameof(Order.CreatedOnUtc)).Descending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_NewsletterSubscription_Email_StoreId").OnTable(nameof(NewsLetterSubscription))
|
|
.OnColumn(nameof(NewsLetterSubscription.Email)).Ascending()
|
|
.OnColumn(nameof(NewsLetterSubscription.StoreId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Manufacturer_SubjectToAcl").OnTable(nameof(Manufacturer))
|
|
.OnColumn(nameof(Manufacturer.SubjectToAcl)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Manufacturer_LimitedToStores").OnTable(nameof(Manufacturer))
|
|
.OnColumn(nameof(Manufacturer.LimitedToStores)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Manufacturer_DisplayOrder").OnTable(nameof(Manufacturer))
|
|
.OnColumn(nameof(Manufacturer.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Log_CreatedOnUtc").OnTable(nameof(Log))
|
|
.OnColumn(nameof(Log.CreatedOnUtc)).Descending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_LocaleStringResource").OnTable(nameof(LocaleStringResource))
|
|
.OnColumn(nameof(LocaleStringResource.ResourceName)).Ascending()
|
|
.OnColumn(nameof(LocaleStringResource.LanguageId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Language_DisplayOrder").OnTable(nameof(Language))
|
|
.OnColumn(nameof(Language.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_GetLowStockProducts").OnTable(nameof(Product))
|
|
.OnColumn(nameof(Product.Deleted)).Ascending()
|
|
.OnColumn(nameof(Product.VendorId)).Ascending()
|
|
.OnColumn(nameof(Product.ProductTypeId)).Ascending()
|
|
.OnColumn(nameof(Product.ManageInventoryMethodId)).Ascending()
|
|
.OnColumn(nameof(Product.MinStockQuantity)).Ascending()
|
|
.OnColumn(nameof(Product.UseMultipleWarehouses)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_GenericAttribute_EntityId_and_KeyGroup").OnTable(nameof(GenericAttribute))
|
|
.OnColumn(nameof(GenericAttribute.EntityId)).Ascending()
|
|
.OnColumn(nameof(GenericAttribute.KeyGroup)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Forums_Subscription_TopicId").OnTable(NameCompatibilityManager.GetTableName(typeof(ForumSubscription)))
|
|
.OnColumn(nameof(ForumSubscription.TopicId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Forums_Subscription_ForumId").OnTable(NameCompatibilityManager.GetTableName(typeof(ForumSubscription)))
|
|
.OnColumn(nameof(ForumSubscription.ForumId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Forums_Group_DisplayOrder").OnTable(NameCompatibilityManager.GetTableName(typeof(ForumGroup)))
|
|
.OnColumn(nameof(ForumGroup.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Forums_Forum_DisplayOrder").OnTable(NameCompatibilityManager.GetTableName(typeof(Forum)))
|
|
.OnColumn(nameof(Forum.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Forums_Topic_Subject").OnTable(NameCompatibilityManager.GetTableName(typeof(ForumTopic)))
|
|
.OnColumn(nameof(ForumTopic.Subject)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Customer_Username").OnTable(nameof(Customer))
|
|
.OnColumn(nameof(Customer.Username)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Customer_SystemName").OnTable(nameof(Customer))
|
|
.OnColumn(nameof(Customer.SystemName)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Customer_Email").OnTable(nameof(Customer))
|
|
.OnColumn(nameof(Customer.Email)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Customer_CustomerGuid").OnTable(nameof(Customer))
|
|
.OnColumn(nameof(Customer.CustomerGuid)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Customer_CreatedOnUtc").OnTable(nameof(Customer))
|
|
.OnColumn(nameof(Customer.CreatedOnUtc)).Descending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Currency_DisplayOrder").OnTable(nameof(Currency))
|
|
.OnColumn(nameof(Currency.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Country_DisplayOrder").OnTable(nameof(Country))
|
|
.OnColumn(nameof(Country.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Category_ParentCategoryId").OnTable(nameof(Category))
|
|
.OnColumn(nameof(Category.ParentCategoryId)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Category_LimitedToStores").OnTable(nameof(Category))
|
|
.OnColumn(nameof(Category.LimitedToStores)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Category_DisplayOrder").OnTable(nameof(Category))
|
|
.OnColumn(nameof(Category.DisplayOrder)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Category_Deleted_Extended").OnTable(nameof(Category))
|
|
.OnColumn(nameof(Category.Deleted)).Ascending()
|
|
.WithOptions().NonClustered()
|
|
.Include(nameof(Category.Id))
|
|
.Include(nameof(Category.Name))
|
|
.Include(nameof(Category.SubjectToAcl)).Include(nameof(Category.LimitedToStores))
|
|
.Include(nameof(Category.Published));
|
|
|
|
Create.Index("IX_Category_SubjectToAcl").OnTable(nameof(Category))
|
|
.OnColumn(nameof(Category.SubjectToAcl)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_ActivityLog_CreatedOnUtc").OnTable(nameof(ActivityLog))
|
|
.OnColumn(nameof(ActivityLog.CreatedOnUtc)).Descending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_AclRecord_EntityId_EntityName").OnTable(nameof(AclRecord))
|
|
.OnColumn(nameof(AclRecord.EntityId)).Ascending()
|
|
.OnColumn(nameof(AclRecord.EntityName)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Customer_Deleted")
|
|
.OnTable(nameof(Customer))
|
|
.OnColumn(nameof(Customer.Deleted)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
|
|
Create.Index("IX_Topic_SystemName")
|
|
.OnTable(nameof(Topic))
|
|
.OnColumn(nameof(Topic.SystemName)).Ascending()
|
|
.WithOptions().NonClustered();
|
|
}
|
|
|
|
#endregion
|
|
} |