diff --git a/core/modules/migrate/migrate.services.yml b/core/modules/migrate/migrate.services.yml
index 9273ac32f11d1f4fbd7733d7b557beffea6be5b6..1a4f64d2925370667363f31853db69ea6b55071c 100644
--- a/core/modules/migrate/migrate.services.yml
+++ b/core/modules/migrate/migrate.services.yml
@@ -21,6 +21,12 @@ services:
   plugin.manager.migrate.id_map:
     class: Drupal\migrate\Plugin\MigratePluginManager
     arguments: [id_map, '@container.namespaces', '@cache.discovery', '@module_handler']
+  cache.discovery_migration:
+    class: Drupal\Core\Cache\CacheBackendInterface
+    tags:
+      - { name: cache.bin }
+    factory: cache_factory:get
+    arguments: [discovery_migration]
   plugin.manager.migration:
     class: Drupal\migrate\Plugin\MigrationPluginManager
-    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
+    arguments: ['@module_handler', '@cache.discovery_migration', '@language_manager']
diff --git a/sites/example.settings.local.php b/sites/example.settings.local.php
index c3347ad39f30235f76a57ac1ea08171de9299fd8..b1f73dd8a68d62e01e71d9f00c9addd1d680145a 100644
--- a/sites/example.settings.local.php
+++ b/sites/example.settings.local.php
@@ -66,6 +66,14 @@
  */
 # $settings['cache']['bins']['render'] = 'cache.backend.null';
 
+/**
+ * Disable caching for migrations.
+ *
+ * Uncomment the code below to only store migrations in memory and not in the
+ * database. This makes it easier to develop custom migrations.
+ */
+# $settings['cache']['bins']['discovery_migration'] = 'cache.backend.memory';
+
 /**
  * Disable Dynamic Page Cache.
  *