diff --git a/beta2beta/beta2beta.install b/beta2beta/beta2beta.install
index a848145..f2da1f7 100644
--- a/beta2beta/beta2beta.install
+++ b/beta2beta/beta2beta.install
@@ -198,5 +198,12 @@ function beta2beta_update_81201() {
 }
 
 /**
+ * Set not null property on uid and status columns in node_field_data.
+ */
+function beta2beta_update_81202() {
+  beta2beta_update_helper(2498919, 12);
+}
+
+/**
  * @} End of "defgroup updates-beta-11-to-12
  */
diff --git a/beta2beta/src/Tests/Update/Beta11Beta12UpdatePath.php b/beta2beta/src/Tests/Update/Beta11Beta12UpdatePath.php
index eddfe3a..17e0cf2 100644
--- a/beta2beta/src/Tests/Update/Beta11Beta12UpdatePath.php
+++ b/beta2beta/src/Tests/Update/Beta11Beta12UpdatePath.php
@@ -9,6 +9,7 @@ namespace Drupal\beta2beta\Tests\Update;
 
 use Drupal\beta2beta\Tests\Update\TestTraits\FrontPage;
 use Drupal\beta2beta\Tests\Update\TestTraits\NewNode;
+use Drupal\Core\Database\Database;
 
 /**
  * Tests the beta 11 to beta 12 update path.
@@ -19,10 +20,49 @@ class Beta11Beta12UpdatePath extends Beta2BetaUpdateTestBase {
 
   use FrontPage;
   use NewNode;
+  use mysqlTableCollationTrait;
 
   /**
    * {@inheritdoc}
    */
   protected static $startingBeta = 11;
 
+  /**
+   * Tests update for core issue 2498919.
+   */
+  public function testUpdate2498919() {
+    // Load node and term data.
+    require __DIR__ . '/../../../tests/fixtures/drupal-8.node-with-term.beta11.php';
+
+    // UID and status fields should allow null values when update starts.
+    $this->assertEqual('YES', $this->mysqlColumnInformation('node_field_data', 'uid', 'Null'), 'Null values allowed in uid column before running updates');
+    $this->assertEqual('YES', $this->mysqlColumnInformation('node_field_revision', 'uid', 'Null'), 'Null values allowed in uid column before running updates');
+    $this->assertEqual('YES', $this->mysqlColumnInformation('node_field_revision', 'status', 'Null'), 'Null values allowed in status column before running updates');
+
+    $this->runUpdates();
+
+    $this->assertEqual('NO', $this->mysqlColumnInformation('node_field_data', 'uid', 'Null'), 'Null values not allowed in uid column after running updates');
+    $this->assertEqual('NO', $this->mysqlColumnInformation('node_field_revision', 'uid', 'Null'), 'Null values not allowed in uid column after running updates');
+    $this->assertEqual('NO', $this->mysqlColumnInformation('node_field_revision', 'status', 'Null'), 'Null values not allowed in status column after running updates');
+  }
+
+  /**
+   * Get column information from the database for a given column.
+   *
+   * @param string $table
+   *   The table name.
+   * @param string $column
+   *   The database column name.
+   * @param string $property
+   *   The property to return.
+   */
+  protected function mysqlColumnInformation($table, $column, $property) {
+    $query = Database::getConnection()->query("DESCRIBE {" . $table . "}");
+    while ($row = $query->fetchAssoc()) {
+      if ($row['Field'] === $column) {
+        return $row[$property];
+      }
+    }
+  }
+
 }
diff --git a/head2head.module b/head2head.module
index e61d96f..58cd964 100644
--- a/head2head.module
+++ b/head2head.module
@@ -1127,3 +1127,23 @@ function head2head_2509300() {
     }
   }
 }
+
+/**
+ * Update for core issue 2498919.
+ */
+function head2head_2498919() {
+  $table_columns = [
+    'node_field_data' => ['uid'],
+    'node_field_revision' => ['status', 'uid'],
+  ];
+
+  foreach ($table_columns as $table => $columns) {
+    foreach ($columns as $column) {
+      $current_schema = \Drupal::keyValue('entity.storage_schema.sql')->get('node.field_schema_data.' . $column, []);
+      $current_schema[$table]['fields'][$column]['not null'] = TRUE;
+      db_change_field($table, $column, $column, $current_schema[$table]['fields'][$column]);
+      \Drupal::keyValue('entity.storage_schema.sql')->set('node.field_schema_data.' . $column, $current_schema);
+    }
+  }
+
+}
