- Issue created by @damienmckenna
- πΊπΈUnited States damienmckenna NH, USA
FYI these are the contrib modules I've installed which have migration plugins:
- entity_access_password
- fivestar
- isfield
- media_migration
- metatag
- migmag
- migrate_plus
- migrate_tools
- migrate_upgrade
- pathauto
- redirect
- smart_sql_idmap
- votingapi
- webform_migrate
- πΊπΈUnited States kerasai
I've come across this now on multiple instances. I've poked at it some, but am unable to determine the root cause. Adjusting the migration's dependencies in the YML doesn't seem to help.
Here's the error:
[error] Migration upgrade_d7_node_complete_webform did not meet the requirements. Missing migrations d7_file_plain_source_field:image, d7_file_plain_type:image, d7_file_plain_source_field_config:image, d7_file, d7_file_plain:image:public.
And that migration's dependencies:
migration_dependencies: required: - upgrade_d7_user - upgrade_d7_node_type - upgrade_d7_file_plain_image_public optional: - upgrade_d7_field_instance
I worked around it with a solution similar to #3194361-3: [migrate_upgrade] Migrate Upgrade, Migrate Tools and Migrate Commerce leads to dependency failure on media types β .
Also, I'm confident that
- πΊπΈUnited States damienmckenna NH, USA
The issue seems to stem from MediaWysiwygPluginBase::appendProcessor() where it runs the following logic:
if (!empty(SourceDatabase::getFormatsUsingTag($source_connection, 'img', $field_name_in_source, $source_entity_type))) { $extra_processes[] = ['plugin' => 'img_tag_to_embed']; if (!$file_link_deps_added) { $migrations[$migration_id]['migration_dependencies']['required'] = array_unique( array_merge( array_values($migrations[$migration_id]['migration_dependencies']['required'] ?? []), [ 'd7_file_plain:image:public', 'd7_file_entity:image:public', ] ) ); } }
When you have the "img_tag_to_embed" process plugin running on your text field it will list these two plugins as dependencies, and then fail. If you comment out the lines above the migration works correctly.
So maybe we need a global configuration (or something) to disable this dependency check when not needed?