首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在从csv迁移时设置subscriptions_status

无法在从csv迁移时设置subscriptions_status
EN

Drupal用户
提问于 2022-04-28 17:20:52
回答 1查看 19关注 0票数 0

使用的模块: Simplenews和迁移。

我有一个通讯,我想订阅从csv文件导入的所有用户。

这是我的csv文件内容:

代码语言:javascript
复制
id,email,date_submitted

这是我的yml导入文件

代码语言:javascript
复制
langcode: en
status: true
dependencies: {  }
id: test_subscriber
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags:
   - CSV
migration_group: test
label: 'Test Subscriber'
source:
  plugin: csv
  path: sites/default/import/subscriber.csv
  delimiter: ','
  enclosure: '"'
  header_row_count: 1
  track_changes: true
  ids:
    - id
process:
  type:
    plugin: default_value
    default_value: simplenews_subscriber
  created: date_submitted
  mail: email
  status:
    plugin: default_value
    default_value: 1
  subscriptions:
    plugin: sub_process
    source: subscriptions
    process:
      target_id:
        plugin: default_value
        default_value: my_newsletter
      status:
        plugin: default_value
        default_value: 1
      timestamp: date_submitted
      source:
        plugin: default_value
        default_value: website
destination:
  plugin: 'entity:simplenews_subscriber'
migration_dependencies:
  required: {  }
  optional: {  }

我可以用电子邮件和时间戳成功地导入所有用户,但是用户没有订阅时事通讯(my_newsletter)。

在数据库中,我有一个表"simplenews_subscriber__subscriptions“,但是列"entity_id”、"subscription_target_id“、"subscription_status”、"subscription_timestamp“和"subscriptions_source”没有被填充。

如果我按如下方式更改yml文件中的订阅设置:

代码语言:javascript
复制
    subscriptions:
      target_id:
        plugin: default_value
        default_value: my_newsletter
      status:
        plugin: default_value
        default_value: 1
      timestamp:
        plugin: default_value
        default_value: date_submitted
      source:
        plugin: default_value
        default_value: website

在数据库表"simplenews_subscriber__subscriptions“中,"entity_id”和"subscription_target_id“列被填充,但"subscription_status”、"subscription_timestamp“和"subscriptions_source”列使用null而不是数据填充。

最终结果是一个未订阅my_newsletter的用户列表(在订阅者编辑页面中,未选中my_newsletter复选框)

提前感谢愿意给我小费的人。

EN

回答 1

Drupal用户

发布于 2022-04-29 14:07:13

我终于解决了这个问题。而不是这个yml段代码

代码语言:javascript
复制
subscriptions:
  target_id:
    plugin: default_value
    default_value: my_newsletter

我改了这个代码

代码语言:javascript
复制
subscriptions/target_id:
  plugin: default_value
  default_value: my_newsletter

这里是完整的代码

代码语言:javascript
复制
langcode: en
status: true
dependencies: {  }
id: test_subscriber
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags:
  - CSV
migration_group: test
label: 'Test Subscriber'
source:
  plugin: csv
  path: sites/default/import/subscriber.csv
  delimiter: ','
  enclosure: '"'
  header_row_count: 1
  track_changes: true
  ids:
    - id
process:
  type:
    plugin: default_value
    default_value: simplenews_subscriber
  created: date_submitted
  mail: email
  status:
    plugin: default_value
    default_value: 1
  subscriptions/target_id:
    plugin: default_value
    default_value: my_newsletter
  subscriptions/status:
    plugin: default_value
    default_value: 1
  subscriptions/timestamp:
    plugin: default_value
    default_value: date_submitted
  subscriptions/source:
    plugin: default_value
    default_value: website
destination:
  plugin: 'entity:simplenews_subscriber'
migration_dependencies:
  required: {  }
  optional: {  }
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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