在Drupal 8迁移中调试忽略项的方法是什么

时间:2016-08-10 13:00:56

标签: migration drupal-8

我使用migrate_upgrade模块创建了迁移脚本,但是在迁移时我有很多被忽略的项目,我尝试使用来自迁移工具的drush mmsg,但是对于忽略的字段只有失败才有帮助。

4 个答案:

答案 0 :(得分:6)

我不确定是否有一种“更合适”的方式来调查各个迁移作业的情况,但我只是查看我的migrate_ *数据库表。它没有告诉我特定行失败的原因,但至少我能够确切地确定我需要调查哪些行。

在与您感兴趣的迁移作业匹配的migrate_ *表中,查找destid1值为NULL的行。

答案 1 :(得分:5)

如上所述,一旦您确定了该行,它有时仍然很难找到。我的情况是它触发了先前导入的实体的更新,然后抛出了行跳过异常。

您可以通过观看while($source->valid())中的MigrateExecutable::import()循环来计算抛出异常的内容。它在第198行(目前)附近。它有一个try-catch,可以捕获异常,告诉它跳过这一行。

如果您有调试器为您跳过的ID设置监视,然后从异常中获取行和文件触发它。

如果你没有,那么值得一个,但你可以根据if添加sourceIdValues并打印$e->getLine() {{1}获取抛出异常的位置。

答案 2 :(得分:0)

我的喜好是使用xdebug和PHP异常断点来探索引发各种迁移异常时发生的情况。我使用PHPStorm,所以使用“运行”>“查看断点”菜单项来调出断点窗口。然后,添加以下PHP断点:

  1. Drupal \ migrate \ MigrateException
  2. Drupal \ migrate \ MigrateSkipRowException(对被忽略的行最有用)
  3. Drupal \ migrate \ MigrateSkipProcessException

然后我执行迁移(在此之前,您必须确保PHPStorm正在侦听并正确使用xdebug来获取断点和其他功能)。当引发这些异常之一时,PHPStorm停止调用。我使用“框架”窗口浏览调用堆栈,并逐步查看变量。这样一来,就可以轻松地在每个步骤中识别字段和数据(源,目标,行等)。

答案 3 :(得分:0)

您正在从Drupal 7迁移到Drupal 8,并且在运行迁移后已忽略了项目。这导致了一个非常重要的问题,即哪些被忽略了?

您所看到的

[notice] Processed 632 items (630 created, 0 updated, 0 failed, 2 ignored) - done with 'node_form'

以上是我将在示例中使用的内容。

您想知道的事情

哪些项目被忽略!?为此,我们可以查看数据库。我认为您可以访问控制台...

数据库中的migrate_map_migration_name表将为您提供所需的信息。将有一个名为source_row_status的列。值2等于忽略状态。因此,运行以下MySQL命令:

SELECT * FROM `migrate_map_node_form` WHERE source_row_status = 2;

返回的行的sourceid1列将包含被忽略的项目的ID。

示例输出:

+-------------------------------------------------------+-----------+---------+-------------------+-------------------+---------------+------+
| source_ids_hash                                       | sourceid1 | destid1 | source_row_status | source_row_status | last_imported | hash |
+-------------------------------------------------------+-----------+---------+-------------------+-------------------+---------------+------+
| 8530eb5d63ad4cfea47134a28e3339e089f639164d218287c3... | 10931     | NULL    | 2                 | 0                 | 0             |      |
+-------------------------------------------------------+-----------+---------+-------------------+-------------------+---------------+------+
| ddd550e747c2a26a2a5058d49be0e146616fd5c45f6bef88f3... | 11656     | NULL    | 2                 | 0                 | 0             |      |
+-------------------------------------------------------+-----------+---------+-------------------+-------------------+---------------+------+