Proper way to define a Migration yaml? I am trying to do a POC using Migrate, Migrate Plus, and Migrate Tools to define migrations and having trouble getting my migration to register and appear in the list of migrations for the migration group I created (in the UI).

In my yaml file, I put in the basics just to try and get it to appear in the UI:

id: remote_entity
label: TESTING
migration_group: mygroup


I named the file remote_entity.yml in a folder called migrations (I got this from the example in the Migrate Plus) module. Yet, it does not appear.

I see other modules have theirs in the config/install directory with a naming pattern assigned. Where is this file supposed to really be? What should it be named to get picked up? If it is in the config/install directory, do I have to uninstall/install the module numerous times as I iterate over a POC and make changes to the migration definition?
Where is this file supposed to really be?


It's config, so config/install is fine


  What should it be named to get picked up?


Like other config it's module_name.type.machine_name.yml, so (e.g.) migrate_plus.migration.id.yml


  do I have to uninstall/install the module numerous times as I iterate over a POC and make changes to the migration definition?


No, just like a normal config import you can do it partially:

drush cim --partial --source=/path/to/your/module/config/install




I did exactly what you did when I first played with Migrate Plus - tried to put the config in a migrations folder, like the example, but it didn't work for me either.

As migrations are config, this does make sense looking back - otherwise Migrate Plus would need to do something non-standard when discovering/importing migration configurations.