我有(虚构的同等)情况: 我有一个 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文件包含
直到知道我有 2 次迁移。但我需要一个来使用batchImport。
首先,我必须说,在单次迁移期间生成不止一种类型的实体,而且生成多个目标项是不好的做法。当您回滚时,“动态”创建的内容将保留。另外,如果您使用更新标志运行怎么办?这就是为什么我强烈建议为您迁移的每种实体类型进行单独迁移。
但是如果您坚持,您可以创建自定义流程插件并执行您想要的操作,即时创建项目。您可以像常规插件一样向其传递参数。基本上,您必须扩展
ProcessPluginBase
类并提供您的 transform()
方法,该方法可以动态查找/创建分类术语以及其他需要的内容。检查一些现有的插件 - 它相当简单。