在一次迁移中生成带有名称和分类参考字段的术语

问题描述 投票:0回答:1

我有(虚构的同等)情况: 我有一个 xlsx 将由 migrate_spreadsheet 迁移。 该文件生成节点,每个节点由 2 个参考分类字段组成(“provider”和“provider_name”)。

provider_name很简单,只要与源对应的术语存在就引用它,否则先生成它:

field_provider_name:
  plugin: entity_generate
  source: 'provider_name'

但是,提供程序指的是默认名称字段,但也是第二个(提供程序分类术语内)分类法reference字段:field_provider_number。

因此:

field_provider:
  name
  field_provider_number:
     provider_number_taxonomy

如何使用onemigration.yml生成节点? 原因是我需要以编程方式调用迁移,到目前为止我有 2 个迁移,但我需要使用 batchImport 来调用它们。

Excel文件包含

  • regnr(唯一)
  • 提供商
  • 提供商名称
  • provider_number

直到知道我有 2 次迁移。但我需要一个来使用batchImport。

php drupal migration drupal-9
1个回答
0
投票

首先,我必须说,在单次迁移期间生成不止一种类型的实体,而且生成多个目标项是不好的做法。当您回滚时,“动态”创建的内容将保留。另外,如果您使用更新标志运行怎么办?这就是为什么我强烈建议为您迁移的每种实体类型进行单独迁移。

但是如果您坚持,您可以创建自定义流程插件并执行您想要的操作,即时创建项目。您可以像常规插件一样向其传递参数。基本上,您必须扩展

ProcessPluginBase
类并提供您的
transform()
方法,该方法可以动态查找/创建分类术语以及其他需要的内容。检查一些现有的插件 - 它相当简单。

© www.soinside.com 2019 - 2024. All rights reserved.