Как обновить версию пользовательского модуля фруктового сада
Я хочу добавить новый элемент контента в мой существующий пользовательский модуль. Я хочу создать новую таблицу и управлять новым элементом контента. Я создал новый метод UpdateForm, но это не вызов при включении или отключении модуля.
public int UpdateForm2()
{
SchemaBuilder.CreateTable("SMRecord", table => table
.ContentPartRecord()
.Column<string>("Name", col => col.WithLength(250))
.Column<decimal>("week1", col => col.WithPrecision(18).WithScale(2))
.Column<decimal>("week2", col => col.WithPrecision(18).WithScale(2))
.Column<decimal>("week3", col => col.WithPrecision(18).WithScale(2))
.Column<int>("SPRecord_Id")
.Column<bool>("IsActive", col => col.WithDefault(true))
);
ContentDefinitionManager.AlterTypeDefinition("SM", builder => builder
.DisplayedAs("SM")
.WithPart("SMPart")
.WithPart("CommonPart")
.WithPart("IdentityPart")
);
ContentDefinitionManager.AlterPartDefinition(typeof(SMRecord).Name, cfg => cfg
.Attachable());
return 3;
}
но UpdateForm2 не вызывает. Пожалуйста, помогите мне, как вызвать метод UpdateForm2 и обновить версию моего модуля.
1 ответ
Я переместил код UpdateForm1() в метод Create() и переместил UpdateForm2() в UpdateForm1() и обновил запись в модуле currnet таблицы Orchard_Framework_DataMigrationRecord. Я сделал версию -1 текущей версии (CModule.SM.Migrations = 1 вместо CModule.SM.Migrations = 2).
А затем снова запустите проект. Ссылка обновления появится в списке модулей. Затем отключите и включите модуль. Модуль будет обновлен.