diff --git a/core/modules/datetime/datetime.install b/core/modules/datetime/datetime.install index 05f4780..1b1ed7f 100644 --- a/core/modules/datetime/datetime.install +++ b/core/modules/datetime/datetime.install @@ -62,15 +62,19 @@ function datetime_update_8601(&$sandbox) { 'value' => ['value'], ]; - $schema = \Drupal::database()->schema(); + $database_schema = \Drupal::database()->schema(); + $schema = \Drupal::keyValue('entity.storage_schema.sql')->getAll(); foreach ($change_list as $entity_type_id => $changes) { foreach (array_keys($changes['field_storage_definitions']) as $field_name) { $value_field_name = $field_name . '_value'; + $key = "{$entity_type_id}.field_schema_data.{$field_name}"; $base_table = $changes['base_table'] . '__' . $field_name; - $schema->dropIndex($base_table, 'value'); - $schema->changeField($base_table, $value_field_name, $value_field_name, $field_spec, $keys_new); + $database_schema->dropIndex($base_table, 'value'); + $database_schema->changeField($base_table, $value_field_name, $value_field_name, $field_spec, $keys_new); + + $schema[$key][$base_table]['fields'][$field_name . '_value']['length'] = 25; \Drupal::database() ->update($base_table) @@ -81,8 +85,10 @@ function datetime_update_8601(&$sandbox) { if ($changes['revision_table']) { $revision_table = $changes['revision_table'] . '__' . $field_name; - $schema->dropIndex($revision_table, 'value'); - $schema->changeField($revision_table, $value_field_name, $value_field_name, $field_spec, $keys_new); + $database_schema->dropIndex($revision_table, 'value'); + $database_schema->changeField($revision_table, $value_field_name, $value_field_name, $field_spec, $keys_new); + + $schema[$key][$revision_table]['fields'][$field_name . '_value']['length'] = 25; \Drupal::database() ->update($revision_table) @@ -93,6 +99,7 @@ function datetime_update_8601(&$sandbox) { } } } + \Drupal::keyValue('entity.storage_schema.sql')->setMultiple($schema); $definitions = \Drupal::keyValue('entity.definitions.installed')->getAll(); $definitions_copy = $definitions; @@ -102,12 +109,12 @@ function datetime_update_8601(&$sandbox) { foreach ($item_value as $field_name => $field_definition) { if ($field_definition instanceof FieldStorageConfig && $field_definition->getType() === 'datetime') { $reflection = new \ReflectionObject($field_definition); - $schema_property = $reflection->getProperty('schema'); - $schema_property->setAccessible(TRUE); - $schema = $field_definition->getSchema(); - $schema['columns']['value']['length'] = 25; - $schema_property->setValue($field_definition, $schema); - $schema_property->setAccessible(FALSE); + $database_schema_property = $reflection->getProperty('schema'); + $database_schema_property->setAccessible(TRUE); + $database_schema = $field_definition->getSchema(); + $database_schema['columns']['value']['length'] = 25; + $database_schema_property->setValue($field_definition, $database_schema); + $database_schema_property->setAccessible(FALSE); $definitions_copy[$item_name][$field_name] = $field_definition; } } diff --git a/core/modules/datetime_range/datetime_range.install b/core/modules/datetime_range/datetime_range.install index 1285cf9..1a62371 100644 --- a/core/modules/datetime_range/datetime_range.install +++ b/core/modules/datetime_range/datetime_range.install @@ -8,7 +8,7 @@ /** * Update datetime fields to explicitly store UTC timezone. */ -function datetime_range_update_8601(&$sandbox) { +function Xdatetime_range_update_8601(&$sandbox) { // Update field storage for existing datetime fields. $entity_manager = \Drupal::entityManager(); $entity_manager->useCaches(FALSE);