diff --git a/core/modules/views/views.install b/core/modules/views/views.install
index d3c0dee..4266a0a 100644
--- a/core/modules/views/views.install
+++ b/core/modules/views/views.install
@@ -27,3 +27,35 @@ function views_schema_0() {
   $schema['cache_views_results'] = $cache_schema;
   return $schema;
 }
+
+/**
+ * Implements hook_requirements().
+ */
+function views_requirements($phase) {
+  $requirements = array();
+  $t = get_t();
+
+  // Display a warning if the user attempts to update with a Drupal 7 version
+  // of Views. An upgrade path is provided by the views_d8_upgrade contributed
+  // module, which uninstalls Views before beginning the Drupal 8 upgrade.
+  if ($phase == 'update') {
+    // If Views is installed but has a schema version less than 8000, we can
+    // assume it is a pre-Drupal version of Views from contrib.
+    $version = (int) drupal_get_installed_schema_version('views');
+    if (($version != SCHEMA_UNINSTALLED) && ($version < 8000)) {
+      $requirements['views_upgrade'] = array(
+        'title' => $t('Installed Views version'),
+        'value' => $version,
+        'severity' => REQUIREMENT_ERROR,
+        'description' => $t(
+          'Your installed version of Views is too old. To migrade Views data from Drupal 7, install and run the <a href="@url">Views Drupal 7 to Drupal 8 upgrade</a> module before installing Drupal 8.',
+          array(
+            '@url' => url('http://drupal.org/project/views_d8_upgrade'),
+          )
+        ),
+      );
+    }
+  }
+
+  return $requirements;
+}
diff --git a/views-requirements.patch b/views-requirements.patch
new file mode 100644
index 0000000..d592835
--- /dev/null
+++ b/views-requirements.patch
@@ -0,0 +1,43 @@
+diff --git a/core/modules/views/views.install b/core/modules/views/views.install
+index d269599..e0efaec 100644
+--- a/core/modules/views/views.install
++++ b/core/modules/views/views.install
+@@ -28,6 +28,38 @@ function views_schema() {
+ }
+ 
+ /**
++ * Implements hook_requirements().
++ */
++function views_requirements($phase) {
++  $requirements = array();
++  $t = get_t();
++
++  // Display a warning if the user attempts to update with a Drupal 7 version
++  // of Views. An upgrade path is provided by the views_d8_upgrade contributed
++  // module, which uninstalls Views before beginning the Drupal 8 upgrade.
++  if ($phase == 'update') {
++    // If Views is installed but has a schema version less than 8000, we can
++    // assume it is a pre-Drupal version of Views from contrib.
++    $version = (int) drupal_get_installed_schema_version('views');
++    if (($version != SCHEMA_UNINSTALLED) && ($version < 8000)) {
++      $requirements['views_upgrade'] = array(
++        'title' => $t('Installed Views version'),
++        'value' => $version,
++        'severity' => REQUIREMENT_ERROR,
++        'description' => $t(
++          'Your installed version of Views is too old. To migrade Views data from Drupal 7, install and run the <a href="@url">Views Drupal 7 to Drupal 8 upgrade</a> module before installing Drupal 8.',
++          array(
++            '@url' => url('http://drupal.org/project/views_d8_upgrade'),
++          )
++        ),
++      );
++    }
++  }
++
++  return $requirements;
++}
++
++/**
+  * Implements hook_update_last_removed().
+  */
+ function views_update_last_removed() {
