首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >迁移输入格式会导致错误

迁移输入格式会导致错误
EN

Drupal用户
提问于 2019-01-19 12:39:39
回答 1查看 1.5K关注 0票数 0

我正在尝试编写自定义迁移以将我的Drupal 7网站迁移到Drupal 8。我目前正在使用Drupal 8.6.7和Drupal 7.61作为生产网站的副本。

到目前为止,我已经用composer建立了D8网站(docroot是path/to/web) (https://www.drupal.org/docs/develop/using-composer/using-composer-to-manage-drupal-site-dependencies )

我一直使用Drush进行D7站点上的维护操作,并且在大多数操作中使用Drush 9,包括D8站点上的迁移。

我已经在D8站点中安装了最相关的模块,以便我可以开始迁移,最显著的是我在文本格式/过滤器以及migrate_plus、migrate_tools和migrate_upgrade中使用的模块的所有D8等价物。

迁移文件是使用Drush命令生成的:

代码语言:javascript
运行
复制
drush @dev migrate-upgrade "$LEGACYDB" "$LEGACYURL" --configure-only --migration-prefix=osn_custom_

到目前为止,我已经成功地迁移了用户和他们的角色,所以我对迁移是如何工作的有一些了解。

我目前正在处理的问题是迁移名为“机密”的自定义内容类型。此类型具有默认的Drupal 7 body字段和字段“field _image”。太普通了。

当我使用默认生成的迁移文件时,看起来所有的东西都被迁移了,但是文本是不可见的。经过研究,我发现这是由于输入格式被设置为D7代码(在我的例子中是‘完整的html'),而在D8中没有被称为'2’的过滤器代码。(src:https://www.drupal.org/docs/8/upgrade/known-issues-when-upgrading-from-drupal-6-or-7-to-drupal-8#d7_至_d8 )。

我决定将2转换为“基本html”,使用D8配置,而根本不迁移D7文本过滤器。

我创建了一个带有静态映射的迁移查找插件,它将所有D7代码转换为首选的D8代码。它可能工作得很好,但我遇到了一个问题,就是我无法让迁移插件处理“机密”迁移配置的迁移。因此,我决定简化它,并将格式设置为默认值'basic_html‘。

下面是我在migrate_plus.migration.osn_custom_d7_node_classified.yml中尝试过的代码片段,下面的代码片段只显示了主体配置,因为其他字段配置是使用drush命令生成的,而不是修改的。

代码语言:javascript
运行
复制
body: body

默认的。内容被迁移,输入格式被设置为'2‘。

根据这一点:https://www.drupal.org/docs/8/api/migrate-api/migrate-process-plugins/migrate-process-overview#nested

这个:https://medium.com/drupal-stories-an-insiders-view/migrate-api-custom-drupal-to-drupal-migration-3bab05da4686

这个:https://www.phase2technology.com/blog/drupal-8-migrations

应该这样做:

代码语言:javascript
运行
复制
  'body/format': 
    plugin: default_value
    default_value: basic_html

  'body/value': body

但是,这会导致以下错误:

InvalidArgumentException:如果要用一个值数组展开占位符,则占位符必须有一个尾随[]。在/path/to/dev/web/core/lib/Drupal/Core/Database/Connection.php).中如果要用一个值数组展开占位符,则占位符必须有一个尾部[]。(/path/to/dev/web/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php:783)

我不知道哪里出了问题,我应该做什么。我也不知道如何调试它来找出它期望的是什么。

有人能给我一些指点吗?

EN

回答 1

Drupal用户

回答已采纳

发布于 2019-01-19 19:16:06

多亏了@Jdrupal,我终于在此链接中找到了解决方案。

代码语言:javascript
运行
复制
  body:
    plugin: sub_process
    source: body
    process:
      value: value
      format:
        plugin: default_value
        default_value: basic_html

(对不起,我似乎没有得到适当的格式)

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

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

复制
相关文章

相似问题

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