diff -u b/core/modules/system/system.install b/core/modules/system/system.install --- b/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -1254,6 +1254,10 @@ function system_update_8004() { $database = \Drupal::database(); $database_schema = $database->schema(); + $langcode_column_value = [ + 'type => 'varchar_ascii', + 'length' => 12, + ]; $schema = \Drupal::keyValue('entity.storage_schema.sql')->getAll(); $schema_copy = $schema; @@ -1266,8 +1270,7 @@ // Langcode fields have the property 'is_ascii' set, instead // they should have set the type to 'varchar_ascii'. if ($field_data_property == 'is_ascii') { - unset($schema_copy[$item_name][$table_name]['fields'][$field_name]['is_ascii']); - $schema_copy[$item_name][$table_name]['fields'][$field_name]['type'] = 'varchar_ascii'; + $schema_copy[$item_name][$table_name]['fields'][$field_name] = $langcode_column_value; if ($database->driver() == 'mysql') { $database_schema->changeField($table_name, $field_name, $field_name, $schema_copy[$item_name][$table_name]['fields'][$field_name]); } @@ -1291,8 +1294,7 @@ $schema_property->setAccessible(TRUE); $schema = $schema_property->getValue($field_definition); if (isset($schema['columns']['value']['is_ascii'])) { - $schema['columns']['value']['type'] = 'varchar_ascii'; - unset($schema['columns']['value']['is_ascii']); + $schema['columns']['value'] = $langcode_column_value; } $schema_property->setValue($field_definition, $schema); $schema_property->setAccessible(FALSE);