Orchardcms Orchard CMS-如何使用数据库管理自定义模块小部件的新字段?

Orchardcms Orchard CMS-如何使用数据库管理自定义模块小部件的新字段?,orchardcms,Orchardcms,我一直在使用一个自定义模块,该模块有一个小部件,其中一些字段存储在数据库中。我在小部件中添加了一个新的非必需字段,而数据库中的一个对应字段没有被添加。处理这种变化的最佳方式是什么 我可以在dev数据库中手动添加一个字段来匹配它,但对于50多个生产租户站点来说,这是不现实的。我不确定这是否是理想的解决方案,但是运行一个sql脚本,手动将所有租户站点的列添加到模块表中似乎可以解决问题。幸运的是,我将所有网站设置为存在于同一数据库中 选择“Alter table”+table_NAME+“Add my

我一直在使用一个自定义模块,该模块有一个小部件,其中一些字段存储在数据库中。我在小部件中添加了一个新的非必需字段,而数据库中的一个对应字段没有被添加。处理这种变化的最佳方式是什么


我可以在dev数据库中手动添加一个字段来匹配它,但对于50多个生产租户站点来说,这是不现实的。

我不确定这是否是理想的解决方案,但是运行一个sql脚本,手动将所有租户站点的列添加到模块表中似乎可以解决问题。幸运的是,我将所有网站设置为存在于同一数据库中

选择“Alter table”+table_NAME+“Add mynewcolumn int null, mynewcolumn2 nvarchar(15)null'来自信息\u SCHEMA.TABLES,其中 表\u名称,如“%a\u租户的\u后缀\u我的\u模块\u放置\u”


字段不应在数据库中添加列。根据设计。

要稍微扩展@Bertand的答案,在向内容部分添加字段(布尔字段、文本字段、媒体选择器字段等)时,不需要创建数据库列,因为用于存储字段的数据库结构已在数据库中就位

字段存储为内容部分的序列化XML。我的所有记录都存储在
Orchard\u Framework\u ContentItemVersionRecord
表中(有一个类似的表
Orchard\u Framework\u ContentItemRecord
,但似乎没有使用它)

XML基本上采用以下格式:

<Data>
    <SomePart>
        <SomeFieldName SomeFieldProperty=”value”
                       SomeOtherProperty=”value”>FieldValue</SomeFieldName>
    </SomePart>
    <SomeOtherPart>
        <SomeOtherFieldName>FieldValue</SomeOtherFieldName>
    </SomeOtherPart>
</Data>

啊,是的,福斯瓦里尔。我想菲尔德和乌节是一个很强的保留词。我的意思是一个自定义栏。
<Data>
    <PicturePart>
        <picture AlternateText="" Class="" Style="" Alignment="" Width="1219"
                 Height="709">~/Media/Default/images/greatPicture.jpg</picture>
    </PicturePart>
    <PictureType>
        <ExtraDescription>It’s a great picture!</ExtraDescription>
    </Pictureype>
</Data>
public int UpdateFrom1() {
    SchemaBuilder.AlterTable("TABLE_NAME", table => table
            .AddColumn<int>("mynewcolumn")
            .AddColumn<string>("mynewcolumn2")
       );
    return 2;
}