从这个问题的延续开始,我尝试使用从源csv迁移到我的站点中的段落。
我有一个CSV文件,其中有来自这些字段的各种字段,我想将三个字段导入到段落字段中,在这个过程中,我创建了一个称为fup_balance的段落类型,它有三个名为field_upload、field_download和field_total的字段,它们的类型为textfield。段落有一个值的限制。
我已经为段落迁移编写了一个自定义的yml,并将其作为依赖项包含在节点迁移yml中,但是数据没有被导入,而且在导入后段落是空的。
有谁能指出为什么它没有进口段落?
我引用了这个示例来创建yml。
我的节点和段落导入实例如下:
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: { }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数据:订阅-列表-小版权
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"发布于 2021-01-12 16:50:24
不要将target_id和target_revision_id设置为相同的值,这是两件完全不同的事情:"id“是段落生命周期的常量,每次更新主机节点时,"revision_id”都会改变。
在节点迁移中尝试这样的方法:
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发布于 2021-01-19 15:42:39
因此,经过进一步的调试,我终于能够导入段落数据。
对于任何想要调试是否导入段落数据的人,请为段落项创建视图,以便您可以检查导入的数据,因为段落没有检查数据的本机方式。感谢这里的小费
还有一些时候,在导入段落时可能会出现未满足的依赖项错误。为了解决这个问题,将依赖项提到为可选依赖项,并首先使用迁移导入命令手动导入依赖项,然后导入父实体。
至于实际答案,我是如何定义我的段落字段的,请参考以下内容:
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'如果有人对此方法有任何意见,请提出建议。
https://drupal.stackexchange.com/questions/299395
复制相似问题