diff --git a/lib/config/migration.js b/lib/config/migration.js
index 9c017cf294b93320cd6997939face4f853480021..eb2376f8dc6d4c19350ee46eb37beb4df045d016 100644
--- a/lib/config/migration.js
+++ b/lib/config/migration.js
@@ -34,7 +34,14 @@ function migrateConfig(config) {
           }
         }
       });
+      isMigrated = true;
       delete migratedConfig.depTypes;
+    } else if (isObject(val)) {
+      const subMigrate = migrateConfig(val);
+      if (subMigrate.isMigrated) {
+        isMigrated = true;
+        migratedConfig[key] = subMigrate.migratedConfig;
+      }
     }
   }
   return { isMigrated, migratedConfig };
diff --git a/test/config/__snapshots__/migration.spec.js.snap b/test/config/__snapshots__/migration.spec.js.snap
index 6ea6cee4fc195e1059a456412ee6be32e7a901e0..ef00800e7f559a0df7eacac71a483b8c80daa950 100644
--- a/test/config/__snapshots__/migration.spec.js.snap
+++ b/test/config/__snapshots__/migration.spec.js.snap
@@ -8,3 +8,13 @@ Object {
   },
 }
 `;
+
+exports[`config/migration migrateConfig(config) it migrates subconfig 1`] = `
+Object {
+  "lockFileMaintenance": Object {
+    "optionalDependencies": Object {
+      "respectLatest": false,
+    },
+  },
+}
+`;
diff --git a/test/config/migration.spec.js b/test/config/migration.spec.js
index eebde0d06b8a47ff61ba3e935a30d4b73eb0c78b..4e9db9c9a236cdb0ec39069cc557c05ecf3526e5 100644
--- a/test/config/migration.spec.js
+++ b/test/config/migration.spec.js
@@ -33,5 +33,27 @@ describe('config/migration', () => {
       expect(isMigrated).toBe(false);
       expect(migratedConfig).toMatchObject(config);
     });
+    it('it migrates subconfig', () => {
+      const config = {
+        lockFileMaintenance: {
+          depTypes: [
+            'dependencies',
+            {
+              depType: 'optionalDependencies',
+              respectLatest: false,
+            },
+          ],
+        },
+      };
+      const { isMigrated, migratedConfig } = configMigration.migrateConfig(
+        config
+      );
+      expect(isMigrated).toBe(true);
+      expect(migratedConfig).toMatchSnapshot();
+      expect(migratedConfig.lockFileMaintenance.depTypes).not.toBeDefined();
+      expect(
+        migratedConfig.lockFileMaintenance.optionalDependencies.respectLatest
+      ).toBe(false);
+    });
   });
 });