diff --git a/core/lib/Drupal/Core/Extension/Extension.php b/core/lib/Drupal/Core/Extension/Extension.php
index 49ca6c2db1..70a89db42b 100644
--- a/core/lib/Drupal/Core/Extension/Extension.php
+++ b/core/lib/Drupal/Core/Extension/Extension.php
@@ -148,6 +148,21 @@ public function load() {
     return FALSE;
   }
 
+  /**
+   * Loads the extension install file, if any.
+   *
+   * @return bool
+   *   TRUE if this extension has a extension install file, FALSE otherwise.
+   */
+  public function loadInstall($name) {
+    $install = $this->root . '/' . $this->getPath() . '/' . $name . '.install';
+    if (file_exists($install)) {
+      include_once $install;
+      return TRUE;
+    }
+    return FALSE;
+  }
+
   /**
    * Re-routes method calls to SplFileInfo.
    *
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandler.php b/core/lib/Drupal/Core/Extension/ModuleHandler.php
index 3b60d528bf..eb5bb626f5 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandler.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandler.php
@@ -159,6 +159,15 @@ public function isLoaded() {
     return $this->loaded;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function loadInstallFiles() {
+    foreach ($this->moduleList as $name => $module) {
+      $module->loadInstall($name);
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php b/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
index abb4edde32..a0d0ce0241 100644
--- a/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
+++ b/core/lib/Drupal/Core/Extension/ModuleHandlerInterface.php
@@ -38,6 +38,14 @@ public function loadAll();
    */
   public function isLoaded();
 
+  /**
+   * Includes .install files if they exist.
+   *
+   * @param string $name
+   *   The name of the module with install file to load.
+   */
+  public function loadInstall();
+
   /**
    * Reloads all enabled modules.
    */
diff --git a/core/modules/system/src/Controller/DbUpdateController.php b/core/modules/system/src/Controller/DbUpdateController.php
index 25a2a70891..c3d72f15cc 100644
--- a/core/modules/system/src/Controller/DbUpdateController.php
+++ b/core/modules/system/src/Controller/DbUpdateController.php
@@ -142,6 +142,8 @@ public static function create(ContainerInterface $container) {
   public function handle($op, Request $request) {
     require_once $this->root . '/core/includes/install.inc';
     require_once $this->root . '/core/includes/update.inc';
+    $modules = \Drupal::moduleHandler();
+    $modules->loadInstallFiles();
 
     drupal_load_updates();
     update_fix_compatibility();
