首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CSV文件迁移段落

从CSV文件迁移段落
EN

Drupal用户
提问于 2021-01-12 16:14:19
回答 2查看 1.2K关注 0票数 1

从这个问题的延续开始,我尝试使用从源csv迁移到我的站点中的段落。

我有一个CSV文件,其中有来自这些字段的各种字段,我想将三个字段导入到段落字段中,在这个过程中,我创建了一个称为fup_balance的段落类型,它有三个名为field_uploadfield_downloadfield_total的字段,它们的类型为textfield。段落有一个值的限制。

我已经为段落迁移编写了一个自定义的yml,并将其作为依赖项包含在节点迁移yml中,但是数据没有被导入,而且在导入后段落是空的。

有谁能指出为什么它没有进口段落?

我引用了这个示例来创建yml。

我的节点和段落导入实例如下:

migration_examples/migrations/article_csv_import.yml

代码语言:javascript
复制
id: article_csv_import
label: Import Articles
migration_group: default
migration_tags:
  - Article CSV Migration

source:
  plugin: 'csv'
  # Full path to the file.
  path: public://subscription-list-small-copy.csv
  # Column delimiter. Comma (,) by default.
  delimiter: ','
  enclosure: '"'
  header_offset: 0
  ids:
    - id
  fields:
    0:
      name: id
      label: 'Id'
    1:
      name: title
      label: 'Title'
    2:
      name: body
      label: 'Post body'
    3:
      name: field_activation_date
      label: 'Activation Date'
    4:
      name: field_expiry_date
      label: 'Expiry Date'
    5:
      name: field_upload
      label: 'FUP Balance Upload'
    6:
      name: field_download
      label: 'FUP Balance Download'
    7:
      name: field_total
      label: 'FUP Balance Total'
process:
  title: title
  body: body
  #activation date of the account.
  field_activation_date:
    -
      plugin: format_date
      from_format: Y-m-d H:i:s
      to_format: 'Y-m-d\TH:i:s'
      from_timezone: 'America/Managua'
      to_timezone: 'UTC'
      source: field_activation_date
  # expiry date of the account.
  field_expiry_date:
    -
      plugin: format_date
      from_format: Y-m-d H:i:s
      to_format: 'Y-m-d\TH:i:s'
      from_timezone: 'America/Managua'
      to_timezone: 'UTC'
      source: field_expiry_date
  # paragraph field.      
  field_fup_details:
    -
      plugin: sub_process
      source: field_fup_details
      process:
        target_id:
          -
            plugin: migration_lookup
            migration: fup_balance_csv_import
            source: value
            no_stub: TRUE
          -
            plugin: extract
            index:
              - 0
        target_revision_id: '@target_id'
  type:
    plugin: default_value
    default_value: article

destination:
  plugin: entity:node

migration_dependencies:
  required:
    - fup_balance_csv_import
  optional: { }

migration_examples/migrations/fup_balance_csv_import.yml

代码语言:javascript
复制
id: fup_balance_csv_import
label: FUP details from CSV
migration_group: default
migration_tags:
  - FUP details CSV Migration

source:
  plugin: 'csv'
  # Full path to the file.
  path: public://subscription-list-small-copy.csv
  # Column delimiter. Comma (,) by default.
  delimiter: ','
  # Field enclosure. Double quotation marks (") by default.
  enclosure: '"'
  # The row to be used as the CSV header (indexed from 0),
  # or null if there is no header row.
  header_offset: 0
  # The column(s) to use as a key. Each column specified will
  # create an index in the migration table and too many columns
  # may throw an index size error.

  ids:
    - id
  fields:
    0:
      name: id
      label: 'Id'
    1:
      name: title
      label: 'Title'
    2:
      name: body
      label: 'Post body'
    3:
      name: field_activation_date
      label: 'Activation Date'
    4:
      name: field_expiry_date
      label: 'Expiry Date'
    5:
      name: field_upload
      label: 'FUP Balance Upload'
    6:
      name: field_download
      label: 'FUP Balance Download'
    7:
      name: field_total
      label: 'FUP Balance Total'

process:
  field_upload: field_upload
  field_download: field_download
  field_total: field_total

destination:
  plugin: entity_reference_revisions:paragraph
  default_bundle: fup_balance

migration_dependencies:
  required: {}
  optional: {}

样本CSV数据:订阅-列表-小版权

代码语言:javascript
复制
id,title,body,field_activation_date,field_expiry_date,field_upload,field_download,field_total
1,Title 1,Body 1,2012-12-22 2:36:03,2013-01-03 0:00:00,NA,NA,"DATA: NA, TIME: NA"
2,Title 2,Body 2,2013-08-16 0:00:00,2013-09-15 0:00:00,NA,NA,"DATA: NA, TIME: NA"
3,Title 3,Body 3,2013-09-14 0:00:00,2013-10-14 0:00:00,NA,NA,"DATA: NA, TIME: NA"
4,Title 4,Body 4,2014-04-08 0:00:00,2014-04-07 23:59:59,NA,NA,"DATA: NA, TIME: NA"
5,Title 5,Body 5,2014-09-30 0:00:00,2015-03-29 11:00:00,NA,35840.0 MB,"DATA: 35840.0 MB, TIME: NA"
6,Title 6,Body 6,2014-12-09 12:29:00,2015-01-09 12:29:00,NA,40960.0 MB,"DATA: 40960.0 MB, TIME: NA"
7,Title 7,Body 7,2014-12-31 11:08:00,2015-06-26 23:59:59,NA,61440.0 MB,"DATA: 61440.0 MB, TIME: NA"
8,Title 8,Body 8,2015-02-25 19:12:00,2015-08-10 23:59:59,NA,35840.0 MB,"DATA: 35840.0 MB, TIME: NA"
9,Title 9,Body 9,2015-03-01 11:19:00,2015-02-28 23:59:59,NA,35840.0 MB,"DATA: 35840.0 MB, TIME: NA"
10,Title 10,Body 10,2015-03-02 18:01:00,2015-08-20 23:59:59,NA,30720.0 MB,"DATA: 30720.0 MB, TIME: NA"
EN

回答 2

Drupal用户

发布于 2021-01-12 16:50:24

不要将target_idtarget_revision_id设置为相同的值,这是两件完全不同的事情:"id“是段落生命周期的常量,每次更新主机节点时,"revision_id”都会改变。

在节点迁移中尝试这样的方法:

代码语言:javascript
复制
field_fup_details:
  plugin: sub_process
  source: field_fup_details
  process:
    temp_paragraph_keys:
      plugin: migration_lookup
      migration: fup_balance_csv_import
      source: value
      no_stub: TRUE
    target_id:
      plugin: extract
      source: '@temp_paragraph_keys'
      index:
        - 0
    target_revision_id:
      plugin: extract
      source: '@temp_paragraph_keys'
      index:
        - 1
票数 1
EN

Drupal用户

发布于 2021-01-19 15:42:39

因此,经过进一步的调试,我终于能够导入段落数据。

对于任何想要调试是否导入段落数据的人,请为段落项创建视图,以便您可以检查导入的数据,因为段落没有检查数据的本机方式。感谢这里的小费

还有一些时候,在导入段落时可能会出现未满足的依赖项错误。为了解决这个问题,将依赖项提到为可选依赖项,并首先使用迁移导入命令手动导入依赖项,然后导入父实体。

至于实际答案,我是如何定义我的段落字段的,请参考以下内容:

代码语言:javascript
复制
 pseudo_field_fup_details:
    plugin: migration_lookup
    migration: fup_balance_csv_import
    source: id  # Unique reference id.
  field_fup_details:
    plugin: sub_process
    source:
      - '@pseudo_field_fup_details'
    process:
      target_id: '0'
      target_revision_id: '1'

如果有人对此方法有任何意见,请提出建议。

票数 1
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/299395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档