Igo*_*nko 7 migration drupal-8
我使用migrate_upgrade模块创建了迁移脚本,但是在迁移时我有很多被忽略的项目,我试图从迁移工具中使用drush mmsg,但是对于忽略的字段只有失败才有帮助.
我不确定是否有一种"更合适"的方式来调查各个迁移作业的情况,但我只是查看我的migrate_*数据库表.它没有告诉我特定行失败的原因,但至少我能够确切地确定我需要调查哪些行.
在与您感兴趣的迁移作业匹配的migrate_*表中,查找destid1值为NULL的行.
小智 5
一旦你确定了行,如上所述,有时候仍然很难找到.我的情况是它触发了先前导入的实体的更新,然后抛出了一个行跳过异常.
您可以通过观察while($source->valid())循环来计算抛出异常的内容MigrateExecutable::import().这是在第198行(目前).它有一个try-catch,可以捕获异常,告诉它跳过这一行.
如果您有调试器为您跳过的ID设置监视,然后从异常中获取行和文件触发它.
如果你不这样做,那么值得一个,但是你可以if根据它添加一个sourceIdValues并打印出来$e->getLine() $e->getFile()以获得抛出异常的位置.
小智 5
您正在从 Drupal 7 迁移到 Drupal 8,并且在运行迁移后忽略了项目。这就引出了一个非常重要的问题,哪些被忽略了?
[notice] Processed 632 items (630 created, 0 updated, 0 failed, 2 ignored) - done with 'node_form'
Run Code Online (Sandbox Code Playgroud)
以上是我将在我的示例中使用的内容。
哪些项目被忽略了!?为此,我们可以查看数据库。我假设您可以访问控制台...
migrate_map_migration_name数据库中的表格将为您提供所需的信息。将有一个名为source_row_status. 值 2 等于忽略状态。因此,运行以下 MySQL 命令:
[notice] Processed 632 items (630 created, 0 updated, 0 failed, 2 ignored) - done with 'node_form'
Run Code Online (Sandbox Code Playgroud)
在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 | |
+-------------------------------------------------------+-----------+---------+-------------------+-------------------+---------------+------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2421 次 |
| 最近记录: |