2012-04-05 67 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