我正在尝试自定义地将D7迁移到D8文章,引用文件(图像)、分类法术语和用户(Uid)。我必须迁移所有这些实体所属的整个组吗
drush migrate_import --group=mygroup保存这些推荐信好吗?
或者是否有可能运行一个附属迁移,但仍然保留引用,我的意思是
drush migrate_import mymigration?
发布于 2017-05-26 22:35:15
--执行依赖项选项将导致您的“主”迁移所依赖的所有迁移首先运行,因此所有引用都将被解析:
drush mi --execute-dependencies mymigration当然,“我的迁移”需要引用它在migration_dependencies中所依赖的迁移:
migration_dependencies:
required:
- my_file_migration
- my_user_migration
...发布于 2017-05-26 12:51:15
我没有做过从D7到D8的迁移,但是对于从sql源迁移到D8的迁移,我发现最好是在“父”之前进行“子”迁移。迁移文章之前的用户、术语和文件也是如此。然后,如果回滚,请按照相反的顺序进行:父母先于孩子。
这篇博文对我很有帮助:http://www.mediacurrent.com/blog/migrating-content-references-drupal-8
这就是我在迁徙中组织事物的方式..。
在儿童移徙方面:
process:
parent_id:
plugin: migration_lookup
migration: parent_migration
source: my_parent_id在父迁移中:
process:
# for the label field and any other non-reference fields, create 'stub' values in this manner:
label_field:
-
plugin: get
source: my_label_field
-
plugin: default_value
default_value: 'Stub Label'
child_items:
plugin: migration_lookup
migration: child_migration
source: my_child_items注意:如果您的一些父实体没有任何子项,您可以使用skip_on_empty进程插件,如下所示,以确保这些父实体仍然被正确迁移。(如果所有父实体都需要子项,则可以通过将“方法”从“process”更改为“row”,从而在迁移中省略任何缺少子实体的父实体。)
child_items:
-
plugin: skip_on_empty
method: process
source: my_child_items
-
plugin: migration_lookup
migration: child_migration发布于 2022-08-31 15:47:24
迁移由它们的migration_dependencies自动处理:
例如:
id: upgrade_d7_field_instance_widget_settings
[...]
migration_dependencies:
required:
- upgrade_d7_field_instance
optional:
- upgrade_d7_field
- upgrade_d7_field_instance因此,如果您正在运行所有迁移(或所有迁移都来自一个标记或组),则根据它们的migration_dependencies计算它们的迁移顺序。
在本例中,upgrade_d7_field_instance_widget_settings只在迁移了upgrade_d7_field_instance之后才会运行!由于upgrade_d7_field是migration_dependency of upgrade_d7_field_instance,所以命令如下:
因此,在运行单个迁移时,您应该小心!
例如,如果您在upgrade_d7_user之前运行upgrade_d7_field_instance,则您的自定义用户字段值可能不会被迁移!
这太棘手了!
我想这对你来说可能很有趣,有更多的细节:https://understanddrupal.com/lessons/introduction-migration-dependencies-drupal/
https://drupal.stackexchange.com/questions/237115
复制相似问题