Импорт данных Orchard CMS

Я пытаюсь импортировать данные в Orchard CMS. У меня есть пользовательский тип, состоящий из частей и полей, и я использую модуль ImportExport. Я экспортировал некоторые данные из Orchard, чтобы убедиться, что XML-схема верна, но при импорте единственное поле, которое кажется заполненным, — это TitlePart Title. Я случайным образом сгенерировал GUID для идентификатора каждой записи. Фруктовый сад 1.4, ИмпортЭкспорт 1.4.

Пример одного элемента данных:

<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>

Это приводит к следующему при просмотре импортированной записи:

Список содержимого:

Список содержимого сада

Экран редактирования:

Экран редактирования фруктового сада

Единственное поле, которое проходит через импорт, — это TitlePart. Как я могу заставить эту работу работать таким образом, чтобы я мог массово вставлять поля или части любого типа с данными? Я также хотел бы захватить контейнер для части Containable.

РЕДАКТИРОВАТЬ: добавление метаданных типа контента

<?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>

person Carson    schedule 05.04.2012    source источник
comment
Иногда возникали проблемы, когда при импорте данные помещались в базу данных, но в разных версиях для элемента содержимого. Таким образом, последняя или опубликованная (не помню какая) версия элемента контента (которая отображается на панели инструментов) не содержит данных. Можете ли вы проверить в БД, чтобы увидеть, так ли это?   -  person Giscard Biamby    schedule 05.04.2012
comment
Я никогда раньше не прикасался к базе данных Orchard напрямую, но я заметил, что в таблице Orchard_Framework_ContentItemRecord строки импорта — это единственные строки, которые содержат данные внутри столбца данных, и у них есть все поля из импорта. Все остальные строки, кажется, хранят свои данные внутри таблицы Orchard_Framework_ContentItemVersionRecord. Это ошибка функции импорта, не учитывающая версию, или какая-то другая проблема?   -  person Carson    schedule 05.04.2012
comment
Это может быть. Я уже однажды сталкивался с подобной ошибкой, но она была исправлена. Вы определили этот элемент контента с помощью панели управления или с помощью кода (например, в Migrations.cs)? Если вы сделали это через код, можете ли вы вставить код? Если нет, можете ли вы вставить метаданные для определения элемента контента? Вы можете получить это через экспорт, установите флажок Метаданные.   -  person Giscard Biamby    schedule 05.04.2012
comment
@GiscardBiamby Я добавил метаданные из типа контента, созданного на панели инструментов. Из-за нехватки времени я вручную импортирую данные непосредственно на SQL-сервер, но было бы неплохо выяснить, что вызывает эту проблему.   -  person Carson    schedule 05.04.2012
comment
Я не знаю, что случилось с моей головой. Надеюсь, кто-то еще может ответить на это. Вы также можете сообщить об ошибке на сайте orchard.codeplex.com.   -  person Giscard Biamby    schedule 06.04.2012
comment
Возможно, это ошибка, но было бы полезно попытаться немного сузить ее. Например, можете ли вы воспроизвести проблему только с идентификационной частью и полями средства выбора медиа?   -  person Bertrand Le Roy    schedule 06.04.2012
comment
Мне удалось воспроизвести ту же ошибку в Orchard 1.6 при импорте пользовательского типа контента, созданного исключительно с помощью нескольких текстовых полей. Похоже, это связано с той же проблемой, что описана выше @GiscardBiamby.   -  person Tomas Vinter    schedule 17.01.2013
comment
Моя проблема была связана с тем, что в моем ContentType отсутствовал Identity ContentPart. Когда Identiy ContentPart был добавлен к типу, а также добавлены идентификаторы для ContentItems в XML, импорт был успешным.   -  person Tomas Vinter    schedule 17.01.2013


Ответы (1)


В итоге я проанализировал вставки базы данных, созданные администратором, и вручную импортировал данные в SQL.

person Carson    schedule 23.05.2012
comment
не могли бы вы рассказать больше о том, как вы импортировали вручную? Я столкнулся с тем же и был бы признателен за помощь. - person ; 06.02.2013