diff --git a/core/lib/Drupal/Core/Database/Schema.php b/core/lib/Drupal/Core/Database/Schema.php index 6b3f61d19f..6507658a10 100644 --- a/core/lib/Drupal/Core/Database/Schema.php +++ b/core/lib/Drupal/Core/Database/Schema.php @@ -729,7 +729,10 @@ protected function escapeDefaultValue($value) { * do not define 'not null' as TRUE. */ protected function ensureNotNullPrimaryKey(array $primary_key, array $fields) { - foreach (array_intersect($primary_key, array_keys($fields)) as $field_name) { + $key_names = array_map(function ($key_spec) { + return is_array($key_spec) ? $key_spec[0] : $key_spec; + }, $primary_key); + foreach (array_intersect($key_names, array_keys($fields)) as $field_name) { if (!isset($fields[$field_name]['not null']) || $fields[$field_name]['not null'] !== TRUE) { throw new SchemaException("The '$field_name' field specification does not define 'not null' as TRUE."); }