2012-04-05 95 views
2

我正在尝试将数据导入到Orchard CMS。我有一个自定义类型,由部分和字段组成,我正在使用ImportExport模块。我已经从Orchard导出了一些数据以确保XML模式是正确的,但是在导入时,唯一似乎填充的字段是TitlePart标题。我已经为每条记录的标识符随机生成了一个GUID。 Orchard 1.4,ImportExport 1.4。Orchard CMS数据导入

实例数据的一个项目:

<Orchard> 
    <Recipe> 
    <Name>Data Import</Name> 
    <Author>myaccount</Author> 
    </Recipe> 
    <Data> 
    <OurPropertiesDivision Id="/Identifier=94eff3237c714f98b021905c33d25ea9" Status="Published"> 
     <LinkField.Link Text="This is a link" Url="http://stackoverflow.com" /> 
     <MediaPickerField.ImageOne Url="~/test.jpg" Width="100" Height="100" /> 
     <MediaPickerField.ImageTwo Url="~/test2.jpg" Width="100" Height="100" /> 
     <MediaPickerField.ImageThree Url="~/test3.jpg" Width="100" Height="100" /> 
     <TitlePart Title="Test Title" /> 
     <CommonPart Owner="/User.UserName=myaccount" CreatedUtc="2012-04-04T23:03:39Z" PublishedUtc="2012-04-04T23:03:39Z" ModifiedUtc="2012-04-04T23:03:39Z" /> 
     <IdentityPart Identifier="94eff3237c714f98b021905c33d25ea9" /> 
    </OurPropertiesDivision> 
    </Data> 
</Orchard> 

这将导致在看进口入境时注意以下事项

内容列表:

Orchard Content List

编辑画面:

Orchard Edit Screen

唯一通过导入进行导入的字段是TitlePart。我怎样才能以一种可以批量插入任何类型的字段或数据的方式来完成这项工作?我还想捕获可容纳部分的容器。

编辑:添加内容类型的元数据

<?xml version="1.0"?> 
<!--Exported from Orchard--> 
-<Orchard> 
    -<Recipe> 
    <Name>Generated by Orchard.ImportExport</Name> 
    <Author>myaccount</Author> 
    </Recipe> -<Metadata> 
    -<Types> 
     -<OurPropertiesDivision DisplayName="Our Properties - Division" ContentTypeSettings.Draftable="True" ContentTypeSettings.Creatable="True"> 
     <CommonPart DateEditorSettings.ShowDateEditor="False" OwnerEditorSettings.ShowOwnerEditor="False"/> 
     <TitlePart/> 
     <OurPropertiesDivision/> 
     <ContainablePart/> 
     <IdentityPart/> 
     </OurPropertiesDivision> 
    </Types> -<Parts> 
     <CommonPart ContentPartSettings.Attachable="True"/> <TitlePart ContentPartSettings.Attachable="True"/> -<OurPropertiesDivision ContentPartSettings.Attachable="True"> 
     <ImageOne.MediaPickerField DisplayName="Image One" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/> 
     <ImageTwo.MediaPickerField DisplayName="Image Two" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/> 
     <ImageThree.MediaPickerField DisplayName="Image Three" MediaPickerFieldSettings.Required="False" HtmlFieldSettings.FlavorDefault="html"/> 
     <Content.HtmlField DisplayName="Content" HtmlFieldSettings.FlavorDefault="html"/> 
     <Link.LinkField DisplayName="Link" HtmlFieldSettings.FlavorDefault="html" LinkFieldSettings.LinkTextMode="Required" LinkFieldSettings.TargetMode="NewWindow" LinkFieldSettings.Required="True"/> 
     </OurPropertiesDivision> <ContainablePart ContentPartSettings.Attachable="True"/> <IdentityPart ContentPartSettings.Attachable="True"/> 
    </Parts> 
    </Metadata> 
</Orchard> 
+0

在导入数据到数据库时,有时会出现问题,但在内容项的不同版本下。因此,最新的或发布的(不记得哪个)版本的内容项目(显示在仪表板中)没有数据。你能检查数据库,看看是否是这种情况? – 2012-04-05 17:50:31

+0

我以前从未碰过Orchard数据库,但我注意到在Orchard_Framework_ContentItemRecord表中,导入是包含Data列内部数据的唯一行,并且它们具有导入中的所有字段。所有其他行似乎将其数据存储在Orchard_Framework_ContentItemVersionRecord表中。这是导入功能不考虑版本或其他问题的错误吗? – Carson 2012-04-05 18:02:04

+0

可能是。我曾经遇到过类似的错误,但它是固定的。您是通过仪表板还是通过代码(即Migrations.cs)来定义此内容项?如果你是通过代码完成的,你可以粘贴代码吗?如果不是,你可以粘贴内容项目定义的元数据吗?你可以通过导出来获得这个,检查元数据复选框。 – 2012-04-05 18:54:12

回答

0

我结束了分析由管理员所生成的数据库插入,并在SQL手动导入数据。

+1

可以请您分享一下您如何进行手动导入?我面临着同样的事情,并希望得到帮助。 – 2013-02-06 18:30:46