Problem/Motivation
Field storage configuration should be stageable in a workspace, but its database schema is shared with Live and every other workspace.
Each operation therefore needs different handling:
- Creating a configurable storage is safe because it adds dedicated tables.
- Updates are safe only when they do not require a schema change.
- Deleting a Live storage must not drop tables or purge data until publication.
- A workspace-only storage can be deleted normally.
Drupal also builds table mappings and queries from shared installed field definitions. Those definitions must continue to describe Live while the workspace can still use its staged fields.
Proposed resolution
Make field_storage_config workspace-supported:
- Allow workspace storage creation and schema-neutral updates.
- Reject schema-changing updates.
- Stage deletion of Live storages without changing shared tables or data.
- Clean up workspace-only tables on discard or revert.
- Prevent same-name storage collisions across workspaces and Live.
- Add staged field_storage_config entities to active field definitions in a workspace context.
- Keep staged differences out of entity update reports.
- Preserve workspace schema and content when a failed publish is rolled back.
Publishing runs the normal field storage lifecycle in Live.
User interface changes
Schema-neutral field storage settings can be staged in a top-level workspace. Schema-changing updates are rejected with an explanatory error.
API changes
The module adds workspace-aware decorators for field definition management and a workspace-aware field_storage_config storage handler.
Issue fork workspace_config-3614632
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
amateescu commentedComment #4
amateescu commentedComment #6
amateescu commented