in src/OrchardCore.Modules/OrchardCore.ContentFields/Indexing/SQL/Migrations.cs [10:410]
public int Create()
{
// NOTE: The Text Length has been decreased from 4000 characters to 768.
// For existing SQL databases update the TextFieldIndex tables Text column length manually.
SchemaBuilder.CreateMapIndexTable<TextFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<string>("Text", column => column.Nullable().WithLength(TextFieldIndex.MaxTextSize))
.Column<string>("BigText", column => column.Nullable().Unlimited())
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(TextFieldIndex), table => table
.CreateIndex("IDX_TextFieldIndex_Text", "Text")
);
SchemaBuilder.CreateMapIndexTable<BooleanFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<bool>("Boolean", column => column.Nullable())
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(BooleanFieldIndex), table => table
.CreateIndex("IDX_BooleanFieldIndex_Boolean", "Boolean")
);
SchemaBuilder.CreateMapIndexTable<NumericFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<decimal>("Numeric", column => column.Nullable())
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(NumericFieldIndex), table => table
.CreateIndex("IDX_NumericFieldIndex_Numeric", "Numeric")
);
SchemaBuilder.CreateMapIndexTable<DateTimeFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<DateTime>("DateTime", column => column.Nullable())
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(DateTimeFieldIndex), table => table
.CreateIndex("IDX_DateTimeFieldIndex_DateTime", "DateTime")
);
SchemaBuilder.CreateMapIndexTable<DateFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<DateTime>("Date", column => column.Nullable())
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(DateFieldIndex), table => table
.CreateIndex("IDX_DateFieldIndex_Date", "Date")
);
SchemaBuilder.CreateMapIndexTable<ContentPickerFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<string>("SelectedContentItemId", column => column.WithLength(26))
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(ContentPickerFieldIndex), table => table
.CreateIndex("IDX_ContentPickerFieldIndex_SelectedContentItemId", "SelectedContentItemId")
);
SchemaBuilder.CreateMapIndexTable<TimeFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<DateTime>("Time", column => column.Nullable())
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(TimeFieldIndex), table => table
.CreateIndex("IDX_TimeFieldIndex_Time", "Time")
);
// NOTE: The Url and Text Length has been decreased from 4000 characters to 768.
// For existing SQL databases update the LinkFieldIndex tables Url and Text column length manually.
// The BigText and BigUrl columns are new additions so will not be populated until the content item is republished.
SchemaBuilder.CreateMapIndexTable<LinkFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<string>("Url", column => column.Nullable().WithLength(LinkFieldIndex.MaxUrlSize))
.Column<string>("BigUrl", column => column.Nullable().Unlimited())
.Column<string>("Text", column => column.Nullable().WithLength(LinkFieldIndex.MaxTextSize))
.Column<string>("BigText", column => column.Nullable().Unlimited())
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_Latest", "Latest")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_Url", "Url")
);
SchemaBuilder.AlterTable(nameof(LinkFieldIndex), table => table
.CreateIndex("IDX_LinkFieldIndex_Text", "Text")
);
SchemaBuilder.CreateMapIndexTable<HtmlFieldIndex>(table => table
.Column<string>("ContentItemId", column => column.WithLength(26))
.Column<string>("ContentItemVersionId", column => column.WithLength(26))
.Column<string>("ContentType", column => column.WithLength(ContentItemIndex.MaxContentTypeSize))
.Column<string>("ContentPart", column => column.WithLength(ContentItemIndex.MaxContentPartSize))
.Column<string>("ContentField", column => column.WithLength(ContentItemIndex.MaxContentFieldSize))
.Column<bool>("Published", column => column.Nullable())
.Column<bool>("Latest", column => column.Nullable())
.Column<string>("Html", column => column.Nullable().Unlimited())
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_ContentItemId", "ContentItemId")
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_ContentItemVersionId", "ContentItemVersionId")
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_ContentType", "ContentType")
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_ContentPart", "ContentPart")
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_ContentField", "ContentField")
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_Published", "Published")
);
SchemaBuilder.AlterTable(nameof(HtmlFieldIndex), table => table
.CreateIndex("IDX_HtmlFieldIndex_Latest", "Latest")
);
// Return 2 to shorcut migrations on new installations.
return 2;
}