Enhancement: Add import mode to allow all fields to be updated in-place for information objects
Something that my organization struggles with is updating fields for information objects that fall outside of the Fields that will support update imports. For example, we frequently want to update the eventDates for a given set of information objects, and there's no good way to do that without having to do a delete-and-replace (but this mode also doesn't suit our needs).
There are two ways to update descriptions in AtoM, and both don't quite fit our needs:
-
match-and-update- works well, but you are limited in the fields that can be re-defined. -
delete-and-replace- works well, but for large databases, deleting descriptions takes a long time, and it's more time efficient to update descriptions in-place.
Delete-and-replace also doesn't work well for us because for the specific AtoM instance where these updates are a problem, deleting the description also deletes the digital object. This is an issue for media that requires a long time to generate derivatives for, and for when there is a replica of that AtoM instance with a shared uploads/ directory.
I wrote a stand-alone CLI task earlier this year to get around this issue and I'm thinking it might make sense to bring into AtoM and integrate it into the csv:import task.
The tool I wrote essentially clears an archival description and removes all content from it without actually deleting it. Its legacy ID stays the same, and the digital object is not deleted. After clearing the description, you can run a match-and-update CSV import to update any information field. This includes being able to update those fields that don't support update imports. You can also delete content with this method, something that's not possible with the regular match-and-update.
I'm thinking this would be useful as a new mode for csv:import, called clear-and-update. When operating in this mode:
- Archival descriptions would be matched as they normally are
- When a matching description is found, it is cleared
- Then, the update can continue as a regular in-place update, but the fields that normally can't be updated would be able to be updated.
The CSV will be slightly different from a match-and-update CSV since empty fields in this CSV would result in empty fields of information after updating. What you see in your update CSV is what you get, essentially.
If there's any interest in this I can take a look at starting work on it.