update_field_storage.php 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. // Uuenda field storage definition'id, et need ühtiksid DB-skeemiga
  3. // (ja uuendaks last-installed schema repository).
  4. use Drupal\Core\Entity\EntityDefinitionUpdateManager;
  5. $update_manager = \Drupal::entityDefinitionUpdateManager();
  6. $change_list = $update_manager->getChangeList();
  7. $count = 0;
  8. foreach ($change_list as $entity_type_id => $changes) {
  9. if (empty($changes['field_storage_definitions'])) {
  10. continue;
  11. }
  12. $storage_definitions = \Drupal::service('entity_field.manager')
  13. ->getFieldStorageDefinitions($entity_type_id);
  14. foreach ($changes['field_storage_definitions'] as $field_name => $change) {
  15. if ($change !== EntityDefinitionUpdateManager::DEFINITION_UPDATED
  16. && $change !== EntityDefinitionUpdateManager::DEFINITION_CREATED) {
  17. continue;
  18. }
  19. if (!isset($storage_definitions[$field_name])) {
  20. echo "skip (puudub): $entity_type_id.$field_name\n";
  21. continue;
  22. }
  23. $update_manager->updateFieldStorageDefinition($storage_definitions[$field_name]);
  24. echo "uuendatud: $entity_type_id.$field_name\n";
  25. $count++;
  26. }
  27. }
  28. echo "done ($count)\n";