0

在 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_termcontent type fieldmultiple value term reference field

任何帮助将不胜感激,在此先感谢:)

4

2 回答 2

0

源插件使用键中的列表值来标识单个行。

如果您有多个值来创建唯一键,则将所有这些列添加为键。根据您的值,您可以将 id、node_title、multi_term、status 全部添加为键。

于 2018-08-22T06:45:50.997 回答
0

您可以通过使用migrate_plus模块entity_generate附带的插件来实现。

但是请注意,作为副作用创建的实体entity_generate,这意味着它们不会回滚 - 因为它们没有自己的迁移,所以不会在迁移映射表中跟踪它们。

这是使用entity_generate, 与在自己的迁移中迁移所有实体相比的主要缺点,这是在可行的情况下推荐的方法。

于 2018-05-08T16:33:21.447 回答