【问题标题】:In D8 How to ignore other duplicate value and merge multi-term value field while importing using csv file?在D8中使用csv文件导入时如何忽略其他重复值并合并多项值字段?
【发布时间】:2018-02-14 10:44:37
【问题描述】:

在 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 的重复列,但在content type field 上用逗号更新列multi_term 的唯一值,它的类型为multiple value term reference field

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

【问题讨论】:

    标签: csv import migration drupal-8 import-csv


    【解决方案1】:

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

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

    这是使用entity_generate 的主要缺点,而不是在自己的迁移中迁移所有实体,这是推荐的可行方法。

    【讨论】:

    • 感谢回复,不过我是通过修改csv文件来实现的。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 2018-09-26
      相关资源
      最近更新 更多