Drupal миграции: отсутствует дополнительное_поле

В Commerce KickStart у них есть несколько миграций, но я пытаюсь воспроизвести ту, что CommerceKickstartBagsCases, которая создает продукты типа Bags_Cases. Все отлично, но в моей миграции, для справки, мне не предоставляется эта опция "field_color:additional_field"

Class CommerceKickstartBagsCases extends CommerceKickstartMigration {

  /**
   * {@inheritdoc}
   */
  public function __construct($arguments = array()) {
    parent::__construct($arguments);
    $this->description = t('Import bags cases from CSV file.');
...
// Color.
    $this->addFieldMapping('field_color', 'color');
    $this->addFieldMapping('field_color:additional_field', 'hexadecimal');
    $this->addFieldMapping('field_color:create_term')
      ->defaultValue(TRUE);
...

}
}

По сути, в моем объекте «Назначение» я вижу field_color и field_color: create_term, но не параметр «field_color: additional_field».

По сути, я могу отобразить поле и создать цветовой термин, если он не существует, но мне нужно «field_color:additional_field», потому что, помимо имени термина, я хочу также заполнить поле, называемое цветом, с некоторыми кодами RGB.

Я знаю, что могу создавать миграцию терминов отдельно, но я хотел бы создать эти термины из миграции моих продуктов так же, как это делает кикстарт коммерции.

Я чувствую, что мне не хватает модуля, но я не могу понять его.

PS: я потратил 2 часа на гугление этого материала, но там не так много материала...


person Nathan    schedule 09.02.2016    source источник


Ответы (1)


Из моего опыта миграции я обнаружил, что если у вас есть поле с подполями, это указывает на то, что это объект, а не просто поле, и мне пришлось перенести его отдельно как миграцию объекта (в вашем случае Term Migration ) связал его с родительским объектом.

person rg246    schedule 16.02.2016