diff --git a/core/lib/Drupal/Core/Config/ConfigInstaller.php b/core/lib/Drupal/Core/Config/ConfigInstaller.php
index 1c7993b..8065613 100644
--- a/core/lib/Drupal/Core/Config/ConfigInstaller.php
+++ b/core/lib/Drupal/Core/Config/ConfigInstaller.php
@@ -218,6 +218,7 @@ protected function createConfiguration($collection, array $config_to_install) {
         if ($this->isSyncing) {
           continue;
         }
+        /** @var \Drupal\Core\Config\Entity\ConfigEntityStorageInterface $entity_storage */
         $entity_storage = $this->configManager
           ->getEntityManager()
           ->getStorage($entity_type);
@@ -231,7 +232,9 @@ protected function createConfiguration($collection, array $config_to_install) {
         else {
           $entity = $entity_storage->createFromStorageRecord($new_config->get());
         }
-        $entity->save();
+        if ($entity->isInstallable()) {
+          $entity->save();
+        }
       }
       else {
         $new_config->save();
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
index 9c8a5e2..90638c6 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
@@ -518,4 +518,11 @@ public function getThirdPartyProviders() {
     return array_keys($this->third_party_settings);
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function isInstallable() {
+    return TRUE;
+  }
+
 }
diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityInterface.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityInterface.php
index 1db3b42..a434ac1 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityInterface.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityInterface.php
@@ -192,4 +192,15 @@ public function onDependencyRemoval(array $dependencies);
    */
   public function getDependencies();
 
+  /**
+   * Checks whether this entity is installable.
+   *
+   * For example, a default view might not be installable if the base table
+   * doesn't exist.
+   *
+   * @retun bool
+   *   TRUE if the entity is installable, FALSE otherwise.
+   */
+  public function isInstallable();
+
 }
diff --git a/core/modules/config/src/Tests/ConfigImporterTest.php b/core/modules/config/src/Tests/ConfigImporterTest.php
index d2c7cf0..b4cb9de 100644
--- a/core/modules/config/src/Tests/ConfigImporterTest.php
+++ b/core/modules/config/src/Tests/ConfigImporterTest.php
@@ -526,4 +526,16 @@ function testUpdated() {
     $logs = $this->configImporter->getErrors();
     $this->assertEqual(count($logs), 0);
   }
+
+  /**
+   * Tests the isInstallable method()
+   */
+  function testIsInstallable() {
+    $config_name = 'config_test.dynamic.isinstallable';
+    $this->assertFalse($this->container->get('config.storage')->exists($config_name));
+    \Drupal::state()->set('config_test.isinstallable', TRUE);
+    $this->installConfig(array('config_test'));
+    $this->assertTrue($this->container->get('config.storage')->exists($config_name));
+  }
+
 }
diff --git a/core/modules/config/tests/config_test/src/Entity/ConfigTest.php b/core/modules/config/tests/config_test/src/Entity/ConfigTest.php
index d1c9a57..158d5dd 100644
--- a/core/modules/config/tests/config_test/src/Entity/ConfigTest.php
+++ b/core/modules/config/tests/config_test/src/Entity/ConfigTest.php
@@ -151,4 +151,11 @@ public function setEnforcedDependencies(array $dependencies) {
     return $this;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function isInstallable() {
+    return $this->id != 'isinstallable' || \Drupal::state()->get('config_test.isinstallable');
+  }
+
 }
diff --git a/core/modules/views/src/Entity/View.php b/core/modules/views/src/Entity/View.php
index ba3d0ee..f08ebb0 100644
--- a/core/modules/views/src/Entity/View.php
+++ b/core/modules/views/src/Entity/View.php
@@ -441,4 +441,12 @@ public function mergeDefaultDisplaysOptions() {
     }
     $this->set('display', $displays);
   }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInstallable() {
+    return (bool) \Drupal::service('views.views_data')->get($this->base_table);
+  }
+
 }
diff --git a/core/modules/views_ui/src/ViewUI.php b/core/modules/views_ui/src/ViewUI.php
index 08e887c..7c00683 100644
--- a/core/modules/views_ui/src/ViewUI.php
+++ b/core/modules/views_ui/src/ViewUI.php
@@ -1241,4 +1241,12 @@ public function addDisplay($plugin_id = 'page', $title = NULL, $id = NULL) {
   public function getViewExecutable() {
     return $this->storage->getViewExecutable();
   }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function isInstallable() {
+    return $this->storage->isInstallable();
+  }
+
 }
