When we converted fields to config in https://github.com/backdrop/backdrop-issues/issues/178, we implemented a direct conversion as much as possible. While this maintained a lot of compatibility, it also kept the scattered configuration locations. Right now field module stores its config in several places:
- Each field has a config file (field.field.field_image
)
- Each instance of that field has a config file (field.instance.node.article.field_image
)
- And each bundle has its display settings in a config file (field.bundle.node.article
)
Combining these into fewer files is a long-term goal, but inevitably some of them must be separate because the field configuration isn't part of the content type and can reused in other types.
One potential way to make importing/exporting content types easier is to expand the single import/export page to include a checkbox for "include all fields" when exporting a content type. This checkbox could be form_altered() in by field.module (or even built into config.module directly). Checking it would AJAX-update the export to include all the related config files for a content type as a JSON array.
The import screen would detect the import of multiple config files, run the validation as normal, then stage the selected files all at once. Reviewing the diff and finishing the import would complete the process.
Recent comments
I have access to bee cli
Backup & Migrate Config: There was a problem creating field...database table with the name already exists.
Thanks for the quick reply, laryn. No features, no Drupal: I built the source site in Backdrop in a subdirectory of the target directory under the same user home directory on the same...
Backup & Migrate Config: There was a problem creating field...database table with the name already exists.
This doesn't sound right -- when the upgrade completed, did you export the post-upgrade configuration into the staging folder (and commit that to the repo if you are using a git-based workflow...
Backup & Migrate Config: There was a problem creating field...database table with the name already exists.