在d8中我将csv文件数据导入内容类型,我有csv文件这样的东西。
id,node_title,multi_term,status
===============================
1,testing title,term_A,1
1,testing title,term_B,1
1,testing title,term_C,1
1,testing title,term_D,1
1,testing title,term_E,1
===============================
我的yml文件就像这样
id: importing_content
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags: null
migration_group: null
label: 'Import Content Type Story'
source:
plugin: csv
path: story.csv
header_row_count: 1
delimiter: ','
keys:
- id
process:
nid: id
title: node_title
tag_term:
-
plugin: migration_lookup
migration: taxonomy_migration
no_stub: true
source: multi_term
status: status
type:
plugin: default_value
default_value: content_type
destination:
plugin: 'entity:node'
migration_dependencies: null
使用此配置我成功导入了csv文件,但这也会忽略重复的id行及其所有值。
我的预期结果是忽略具有相同id
的所有重复列,但使用逗号multi_term
更新列content type field
的唯一值multiple value term reference field
类型为{{1}} }。
任何帮助将不胜感激, 提前谢谢:)
答案 0 :(得分:0)
您可以使用migrate_plus模块附带的entity_generate
插件来实现这一目标。
但请注意,使用entity_generate
创建的实体作为副作用,这意味着它们不会回滚 - 因为它们没有自己的迁移,因此不会在迁移映射表中跟踪它们。 / p>
这是使用entity_generate
的主要缺点,而不是迁移他们自己的迁移中的所有实体,这是可行的推荐方法。
答案 1 :(得分:0)
源插件使用键中的列表值来标识单个行。
如果您有多个值可以用作唯一键,则将所有这些列添加为键。根据您的值,您可以将id,node_title,multi_term,status全部添加为键。