diff --git a/core/modules/comment/src/Tests/CommentValidationTest.php b/core/modules/comment/src/Tests/CommentValidationTest.php index 61457f4..c22e15b 100644 --- a/core/modules/comment/src/Tests/CommentValidationTest.php +++ b/core/modules/comment/src/Tests/CommentValidationTest.php @@ -29,7 +29,6 @@ class CommentValidationTest extends EntityUnitTestBase { */ protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); $this->installEntitySchema('comment'); $this->installSchema('comment', array('comment_entity_statistics')); } diff --git a/core/modules/config/src/Tests/ConfigImportRecreateTest.php b/core/modules/config/src/Tests/ConfigImportRecreateTest.php index 964128f..adb9c8d 100644 --- a/core/modules/config/src/Tests/ConfigImportRecreateTest.php +++ b/core/modules/config/src/Tests/ConfigImportRecreateTest.php @@ -37,6 +37,7 @@ protected function setUp() { parent::setUp(); $this->installEntitySchema('node'); + $this->installConfig(array('field')); $this->copyConfig($this->container->get('config.storage'), $this->container->get('config.storage.staging')); diff --git a/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php b/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php index 7dc7cd6..14ce9fd 100644 --- a/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php +++ b/core/modules/config/src/Tests/ConfigImportRenameValidationTest.php @@ -44,6 +44,7 @@ protected function setUp() { $this->installEntitySchema('user'); $this->installEntitySchema('node'); + $this->installConfig(array('field')); // Set up the ConfigImporter object for testing. $storage_comparer = new StorageComparer( diff --git a/core/modules/editor/src/Tests/EditorFileUsageTest.php b/core/modules/editor/src/Tests/EditorFileUsageTest.php index fb62a09..1a6d844 100644 --- a/core/modules/editor/src/Tests/EditorFileUsageTest.php +++ b/core/modules/editor/src/Tests/EditorFileUsageTest.php @@ -25,7 +25,6 @@ class EditorFileUsageTest extends EntityUnitTestBase { protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); $this->installEntitySchema('file'); $this->installSchema('node', array('node_access')); $this->installSchema('file', array('file_usage')); diff --git a/core/modules/field/config/schema/field.schema.yml b/core/modules/field/config/schema/field.schema.yml index 862f40a..184dc2f 100644 --- a/core/modules/field/config/schema/field.schema.yml +++ b/core/modules/field/config/schema/field.schema.yml @@ -47,6 +47,9 @@ field.storage.*.*: sequence: - type: ignore label: 'Index' + persist_with_no_fields: + type: boolean + label: 'Persist field storage with no fields' field.field.*.*.*: type: field_config_base diff --git a/core/modules/field/src/Entity/FieldConfig.php b/core/modules/field/src/Entity/FieldConfig.php index ec75234..f8a976a 100644 --- a/core/modules/field/src/Entity/FieldConfig.php +++ b/core/modules/field/src/Entity/FieldConfig.php @@ -219,7 +219,7 @@ public static function postDelete(EntityStorageInterface $storage, array $fields $storages_to_delete = array(); foreach ($fields as $field) { $storage_definition = $field->getFieldStorageDefinition(); - if (!$field->deleted && empty($field->noFieldDelete) && !$field->isUninstalling() && count($storage_definition->getBundles()) == 0) { + if (!$field->deleted && empty($field->noFieldDelete) && !$field->isUninstalling() && $storage_definition->isDeleteable()) { // Key by field UUID to avoid deleting the same storage twice. $storages_to_delete[$storage_definition->uuid()] = $storage_definition; } diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php index 29794c7..48c8068 100644 --- a/core/modules/field/src/Entity/FieldStorageConfig.php +++ b/core/modules/field/src/Entity/FieldStorageConfig.php @@ -134,6 +134,14 @@ class FieldStorageConfig extends ConfigEntityBase implements FieldStorageConfigI public $locked = FALSE; /** + * Flag indicating whether the field storage should be removed when there are + * no fields. + * + * @var bool + */ + protected $persist_with_no_fields = FALSE; + + /** * The custom storage indexes for the field data storage. * * This set of indexes is merged with the "default" indexes specified by the @@ -733,4 +741,13 @@ public static function loadByName($entity_type_id, $field_name) { return \Drupal::entityManager()->getStorage('field_storage_config')->load($entity_type_id . '.' . $field_name); } + /** + * {@inheritdoc} + */ + public function isDeleteable() { + // The field storage is not deleted, is configured to be removed when there + // are no fields and the field storage has no bundles. + return !$this->deleted && !$this->persist_with_no_fields && count($this->getBundles()) == 0; + } + } diff --git a/core/modules/field/src/FieldStorageConfigInterface.php b/core/modules/field/src/FieldStorageConfigInterface.php index 4f4eb04..45459bb 100644 --- a/core/modules/field/src/FieldStorageConfigInterface.php +++ b/core/modules/field/src/FieldStorageConfigInterface.php @@ -31,4 +31,12 @@ public function getBundles(); */ public function isLocked(); + /** + * Checks if the field storage can be deleted. + * + * @return bool + * TRUE if the field storage can be deleted. + */ + public function isDeleteable(); + } diff --git a/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import.yml b/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import.yml index 33fdf52..01e9b2a 100644 --- a/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import.yml +++ b/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import.yml @@ -16,3 +16,4 @@ dependencies: module: - entity_test - text +persist_with_no_fields: false diff --git a/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import_2.yml b/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import_2.yml index 69874a4..7ba8659 100644 --- a/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import_2.yml +++ b/core/modules/field/tests/modules/field_test_config/config/install/field.storage.entity_test.field_test_import_2.yml @@ -16,3 +16,4 @@ dependencies: module: - entity_test - text +persist_with_no_fields: false diff --git a/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging.yml b/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging.yml index 495049a..4477f26 100644 --- a/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging.yml +++ b/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging.yml @@ -17,3 +17,4 @@ dependencies: module: - entity_test - text +persist_with_no_fields: false diff --git a/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging_2.yml b/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging_2.yml index 6b8ef2c..5460ecc 100644 --- a/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging_2.yml +++ b/core/modules/field/tests/modules/field_test_config/staging/field.storage.entity_test.field_test_import_staging_2.yml @@ -17,3 +17,4 @@ dependencies: module: - entity_test - text +persist_with_no_fields: false diff --git a/core/modules/field_ui/src/FieldOverview.php b/core/modules/field_ui/src/FieldOverview.php index 312832f..5810cdf 100644 --- a/core/modules/field_ui/src/FieldOverview.php +++ b/core/modules/field_ui/src/FieldOverview.php @@ -492,38 +492,23 @@ public function submitForm(array &$form, FormStateInterface $form_state) { */ protected function getExistingFieldOptions() { $options = array(); - - // Collect candidate fields: all fields of field storages for this - // entity type that are not already present in the current bundle. - $field_map = \Drupal::entityManager()->getFieldMap(); - $field_ids = array(); - if (!empty($field_map[$this->entity_type])) { - foreach ($field_map[$this->entity_type] as $field_name => $data) { - if (!in_array($this->bundle, $data['bundles'])) { - $bundle = reset($data['bundles']); - $field_ids[] = $this->entity_type . '.' . $bundle . '.' . $field_name; - } - } - } - - // Load the fields and build the list of options. - if ($field_ids) { - $field_types = $this->fieldTypeManager->getDefinitions(); - $fields = $this->entityManager->getStorage('field_config')->loadMultiple($field_ids); - foreach ($fields as $field) { - // Do not show: - // - locked fields, - // - fields that should not be added via user interface. - $field_type = $field->getType(); - $field_storage = $field->getFieldStorageDefinition(); - if (empty($field_storage->locked) && empty($field_types[$field_type]['no_ui'])) { - $options[$field->getName()] = array( - 'type' => $field_type, - 'type_label' => $field_types[$field_type]['label'], - 'field' => $field->getName(), - 'label' => $field->getLabel(), - ); - } + // Load the field_storages and build the list of options. + $field_types = $this->fieldTypeManager->getDefinitions(); + foreach ($this->entityManager->getStorage('field_storage_config')->loadByProperties(array('entity_type' => $this->entity_type)) as $field_storage) { + // Do not show: + // - locked field_storages, + // - field_storages that should not be added via user interface. + // - where the field is already on the bundle. + $field_type = $field_storage->getType(); + if (!$field_storage->isLocked() + && empty($field_types[$field_type]['no_ui']) + && !in_array($this->bundle, $field_storage->getBundles(), TRUE)) { + $options[$field_storage->getName()] = array( + 'type' => $field_type, + 'type_label' => $field_types[$field_type]['label'], + 'field' => $field_storage->getName(), + 'label' => $field_storage->getLabel(), + ); } } diff --git a/core/modules/field_ui/src/Tests/EntityDisplayTest.php b/core/modules/field_ui/src/Tests/EntityDisplayTest.php index 5150f58..e6effec 100644 --- a/core/modules/field_ui/src/Tests/EntityDisplayTest.php +++ b/core/modules/field_ui/src/Tests/EntityDisplayTest.php @@ -21,6 +21,7 @@ class EntityDisplayTest extends KernelTestBase { protected function setUp() { parent::setUp(); + $this->installEntitySchema('node'); $this->installConfig(array('field')); } @@ -268,8 +269,6 @@ public function testBaseFieldComponent() { * Tests renaming and deleting a bundle. */ public function testRenameDeleteBundle() { - $this->installEntitySchema('node'); - // Create a node bundle, display and form display object. entity_create('node_type', array('type' => 'article'))->save(); entity_get_display('node', 'article', 'default')->save(); diff --git a/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php b/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php index 768c142..f9a4850 100644 --- a/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php +++ b/core/modules/field_ui/src/Tests/EntityFormDisplayTest.php @@ -9,6 +9,7 @@ use Drupal\Core\Entity\Entity\EntityFormMode; use Drupal\simpletest\KernelTestBase; +use Drupal\system\Tests\Entity\EntityUnitTestBase; /** * Tests the entity display configuration entities. @@ -21,7 +22,6 @@ class EntityFormDisplayTest extends KernelTestBase { protected function setUp() { parent::setUp(); - $this->installConfig(array('field')); } /** diff --git a/core/modules/field_ui/src/Tests/ManageFieldsTest.php b/core/modules/field_ui/src/Tests/ManageFieldsTest.php index 2379899..7b92b78 100644 --- a/core/modules/field_ui/src/Tests/ManageFieldsTest.php +++ b/core/modules/field_ui/src/Tests/ManageFieldsTest.php @@ -12,6 +12,7 @@ use Drupal\Core\Language\LanguageInterface; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; +use Drupal\node\Entity\NodeType; /** * Tests the Field UI "Manage fields" screen. @@ -72,6 +73,7 @@ function testCRUDFields() { $this->cardinalitySettings(); $this->fieldListAdminPage(); $this->deleteField(); + $this->addingPersistentFieldStorage(); } /** @@ -226,6 +228,30 @@ protected function deleteField() { } /** + * Tests that persistent field storage appears in the field UI. + */ + protected function addingPersistentFieldStorage() { + $field_storage = FieldStorageConfig::loadByName('node', $this->field_name); + // Persist the field storage even if there are no fields. + $field_storage->set('persist_with_no_fields', TRUE)->save(); + // Delete all instances of the field. + foreach ($field_storage->getBundles() as $node_type) { + // Delete all the body field instances. + $this->drupalPostForm('admin/structure/types/manage/' . $node_type . '/fields/node.' . $node_type . '.' . $this->field_name, array(), t('Delete field')); + $this->drupalPostForm(NULL, array(), t('Delete')); + } + // Check "Re-use existing field" appears. + $this->drupalGet('admin/structure/types/manage/page/fields'); + $this->assertRaw(t('Re-use existing field'), '"Re-use existing field" was found.'); + // Add a new field based on an existing field. + $edit = array( + 'fields[_add_existing_field][label]' => $this->randomMachineName(), + 'fields[_add_existing_field][field_name]' => $this->field_name, + ); + $this->fieldUIAddExistingField("admin/structure/types/manage/page", $edit); + } + + /** * Asserts field settings are as expected. * * @param $bundle diff --git a/core/modules/forum/config/install/field.storage.taxonomy_term.forum_container.yml b/core/modules/forum/config/install/field.storage.taxonomy_term.forum_container.yml index abf4e8e..b442e27 100644 --- a/core/modules/forum/config/install/field.storage.taxonomy_term.forum_container.yml +++ b/core/modules/forum/config/install/field.storage.taxonomy_term.forum_container.yml @@ -16,3 +16,4 @@ dependencies: module: - options - taxonomy +persist_with_no_fields: false diff --git a/core/modules/hal/src/Tests/EntityTest.php b/core/modules/hal/src/Tests/EntityTest.php index 47aa4d3..a115146 100644 --- a/core/modules/hal/src/Tests/EntityTest.php +++ b/core/modules/hal/src/Tests/EntityTest.php @@ -30,7 +30,6 @@ protected function setUp() { \Drupal::service('router.builder')->rebuild(); $this->installSchema('system', array('sequences')); $this->installSchema('comment', array('comment_entity_statistics')); - $this->installEntitySchema('node'); $this->installEntitySchema('comment'); $this->installEntitySchema('taxonomy_term'); } diff --git a/core/modules/hal/src/Tests/NormalizerTestBase.php b/core/modules/hal/src/Tests/NormalizerTestBase.php index e7b59d6..7046201 100644 --- a/core/modules/hal/src/Tests/NormalizerTestBase.php +++ b/core/modules/hal/src/Tests/NormalizerTestBase.php @@ -64,6 +64,23 @@ protected function setUp() { $this->installSchema('system', array('url_alias', 'router')); $this->installEntitySchema('user'); $this->installEntitySchema('entity_test'); + // If the class has node in the list of module install the entity schema + // since node provides a body field storage that causes tables to be created + // before the entity tables. + $class = get_class($this); + while ($class) { + if (property_exists($class, 'modules')) { + // Only check the modules, if the $modules property was not inherited. + $rp = new \ReflectionProperty($class, 'modules'); + if ($rp->class == $class) { + if (in_array('node', $class::$modules, TRUE)) { + $this->installEntitySchema('node'); + break; + } + } + } + $class = get_parent_class($class); + } $this->installConfig(array('field', 'language')); // Add German as a language. diff --git a/core/modules/node/config/install/field.storage.node.body.yml b/core/modules/node/config/install/field.storage.node.body.yml new file mode 100644 index 0000000..5b75885 --- /dev/null +++ b/core/modules/node/config/install/field.storage.node.body.yml @@ -0,0 +1,17 @@ +langcode: en +status: true +dependencies: + module: + - node + - text +id: node.body +field_name: body +entity_type: node +type: text_with_summary +settings: { } +module: text +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: true diff --git a/core/modules/node/node.module b/core/modules/node/node.module index d65d59d..b1ac5ed 100644 --- a/core/modules/node/node.module +++ b/core/modules/node/node.module @@ -328,14 +328,6 @@ function node_add_body_field(NodeTypeInterface $type, $label = 'Body') { // Add or remove the body field, as needed. $field_storage = FieldStorageConfig::loadByName('node', 'body'); $field = FieldConfig::loadByName('node', $type->id(), 'body'); - if (empty($field_storage)) { - $field_storage = entity_create('field_storage_config', array( - 'field_name' => 'body', - 'entity_type' => 'node', - 'type' => 'text_with_summary', - )); - $field_storage->save(); - } if (empty($field)) { $field = entity_create('field_config', array( 'field_storage' => $field_storage, diff --git a/core/modules/node/src/Tests/Condition/NodeConditionTest.php b/core/modules/node/src/Tests/Condition/NodeConditionTest.php index bbba619..548f180 100644 --- a/core/modules/node/src/Tests/Condition/NodeConditionTest.php +++ b/core/modules/node/src/Tests/Condition/NodeConditionTest.php @@ -20,7 +20,6 @@ class NodeConditionTest extends EntityUnitTestBase { protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); // Create the node bundles required for testing. $type = entity_create('node_type', array('type' => 'page', 'name' => 'page')); diff --git a/core/modules/node/src/Tests/NodeBodyFieldStorageTest.php b/core/modules/node/src/Tests/NodeBodyFieldStorageTest.php new file mode 100644 index 0000000..a4d6fce --- /dev/null +++ b/core/modules/node/src/Tests/NodeBodyFieldStorageTest.php @@ -0,0 +1,60 @@ +installSchema('system', 'sequences'); + // For module unsintall. + $this->installSchema('user', 'users_data'); + $this->installEntitySchema('user'); + $this->installEntitySchema('node'); + $this->installConfig(array('field')); + } + + /** + * Tests node body field storage persistence even if there are no instances. + */ + public function testFieldOverrides() { + $field_storage = FieldStorageConfig::loadByName('node', 'body'); + $this->assertTrue($field_storage, 'Node body field storage exists.'); + NodeType::create(['name' => 'Ponies', 'type' => 'ponies'])->save(); + $field_storage = FieldStorageConfig::loadByName('node', 'body'); + $this->assertTrue(count($field_storage->getBundles()) == 1, 'Node body field storage is being used on the new node type.'); + $field = FieldConfig::loadByName('node', 'ponies', 'body'); + $field->delete(); + $field_storage = FieldStorageConfig::loadByName('node', 'body'); + $this->assertTrue(count($field_storage->getBundles()) == 0, 'Node body field storage exists after deleting the only instance of a field.'); + \Drupal::moduleHandler()->uninstall(array('node')); + $field_storage = FieldStorageConfig::loadByName('node', 'body'); + $this->assertFalse($field_storage, 'Node body field storage does not exist after uninstalling the Node module.'); + } + +} diff --git a/core/modules/node/src/Tests/NodeFieldOverridesTest.php b/core/modules/node/src/Tests/NodeFieldOverridesTest.php index b5d13b4..2472abe 100644 --- a/core/modules/node/src/Tests/NodeFieldOverridesTest.php +++ b/core/modules/node/src/Tests/NodeFieldOverridesTest.php @@ -38,7 +38,6 @@ class NodeFieldOverridesTest extends EntityUnitTestBase { */ protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); $this->installConfig(array('user')); $this->user = $this->createUser(); \Drupal::service('current_user')->setAccount($this->user); diff --git a/core/modules/node/src/Tests/NodeTokenReplaceTest.php b/core/modules/node/src/Tests/NodeTokenReplaceTest.php index 8103866..7c0dfe7 100644 --- a/core/modules/node/src/Tests/NodeTokenReplaceTest.php +++ b/core/modules/node/src/Tests/NodeTokenReplaceTest.php @@ -30,7 +30,6 @@ class NodeTokenReplaceTest extends TokenReplaceUnitTestBase { */ protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); $this->installConfig(array('filter')); $node_type = entity_create('node_type', array('type' => 'article', 'name' => 'Article')); diff --git a/core/modules/node/src/Tests/NodeValidationTest.php b/core/modules/node/src/Tests/NodeValidationTest.php index 3c5e2dd..ef11740 100644 --- a/core/modules/node/src/Tests/NodeValidationTest.php +++ b/core/modules/node/src/Tests/NodeValidationTest.php @@ -28,7 +28,6 @@ class NodeValidationTest extends EntityUnitTestBase { */ protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); // Create a node type for testing. $type = entity_create('node_type', array('type' => 'page', 'name' => 'page')); diff --git a/core/modules/options/tests/options_config_install_test/config/install/field.storage.node.field_options_float.yml b/core/modules/options/tests/options_config_install_test/config/install/field.storage.node.field_options_float.yml index daf5c75..f355b2e 100644 --- a/core/modules/options/tests/options_config_install_test/config/install/field.storage.node.field_options_float.yml +++ b/core/modules/options/tests/options_config_install_test/config/install/field.storage.node.field_options_float.yml @@ -22,3 +22,4 @@ locked: false cardinality: 1 translatable: true indexes: { } +persist_with_no_fields: false diff --git a/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php b/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php index 66443bb..3683b4a 100644 --- a/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php +++ b/core/modules/system/src/Tests/Entity/EntityCrudHookTest.php @@ -43,7 +43,6 @@ class EntityCrudHookTest extends EntityUnitTestBase { protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); $this->installEntitySchema('comment'); $this->installSchema('user', array('users_data')); diff --git a/core/modules/system/src/Tests/Entity/EntityFieldTest.php b/core/modules/system/src/Tests/Entity/EntityFieldTest.php index bdd7937..4ef7ab0 100644 --- a/core/modules/system/src/Tests/Entity/EntityFieldTest.php +++ b/core/modules/system/src/Tests/Entity/EntityFieldTest.php @@ -52,8 +52,6 @@ class EntityFieldTest extends EntityUnitTestBase { protected function setUp() { parent::setUp(); - $this->installEntitySchema('node'); - $this->installEntitySchema('entity_test_rev'); $this->installEntitySchema('entity_test_mul'); $this->installEntitySchema('entity_test_mulrev'); diff --git a/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php index c1dc0ff..d1a5ae7 100644 --- a/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php +++ b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php @@ -47,6 +47,24 @@ protected function setUp() { $this->installEntitySchema('user'); $this->installEntitySchema('entity_test'); + // If the class has node in the list of module install the entity schema + // since node provides a body field storage that causes tables to be created + // before the entity tables. + $class = get_class($this); + while ($class) { + if (property_exists($class, 'modules')) { + // Only check the modules, if the $modules property was not inherited. + $rp = new \ReflectionProperty($class, 'modules'); + if ($rp->class == $class) { + if (in_array('node', $class::$modules, TRUE)) { + $this->installEntitySchema('node'); + break; + } + } + } + $class = get_parent_class($class); + } + $this->installConfig(array('field')); } diff --git a/core/profiles/standard/config/install/field.storage.node.field_image.yml b/core/profiles/standard/config/install/field.storage.node.field_image.yml index 34265d8..2e98e52 100644 --- a/core/profiles/standard/config/install/field.storage.node.field_image.yml +++ b/core/profiles/standard/config/install/field.storage.node.field_image.yml @@ -23,3 +23,4 @@ dependencies: module: - node - image +persist_with_no_fields: false diff --git a/core/profiles/standard/config/install/field.storage.node.field_tags.yml b/core/profiles/standard/config/install/field.storage.node.field_tags.yml index 2eca1d0..60c4546 100644 --- a/core/profiles/standard/config/install/field.storage.node.field_tags.yml +++ b/core/profiles/standard/config/install/field.storage.node.field_tags.yml @@ -20,3 +20,4 @@ dependencies: module: - node - taxonomy +persist_with_no_fields: false diff --git a/core/profiles/standard/config/install/field.storage.user.user_picture.yml b/core/profiles/standard/config/install/field.storage.user.user_picture.yml index 2987390..e4d4960 100644 --- a/core/profiles/standard/config/install/field.storage.user.user_picture.yml +++ b/core/profiles/standard/config/install/field.storage.user.user_picture.yml @@ -23,3 +23,4 @@ dependencies: module: - image - user +persist_with_no_fields: false