Hi Stuart,
It definitely depends on what changes you are trying to make, and to what entities. Some things will be easier via the user interface - for example, editing a single controlled vocabulary term will update it automatically on all linked records. The same is true for storage containers linked to descriptions, authorities, etc. Additionally, if you use the Move module to move a description from one parent record to another, all descendant records will also be moved.
Similarly, AtoM uses inheritance in description hierarchies for repository names and creator names, so linking these just once at the appropriate level, and then editing these at that one level when needed, will also automatically inherit the changes at lower levels. In fact, there is now a command-line task that can be run that will check for unnecessary direct links between authorities and descriptions that would have the same outcome if inheritance were used instead (because this can have performance impacts) - see:
There are a number of other CLI tasks that can be handy for data cleanup in certain situations - for example:
There are also a few bulk operations that can be done using SQL. I strongly encourage that you
make a database backup before pursuing this option, but we also have basic instructions on how to do that on the page:
If you are going to use CSV import and export to update some descriptions, it's also a good idea to make a backup first (just in case!). Additionally, your update process will be MUCH easier if you can use the command-line to run the re-import. The user interface documentation still provides a good overview of the process and how to prepare your CSV:
We have tried to update these docs to make them as clear as possible, but... long story short, the original matching logic was not very intuitive, and mostly designed for system to system updates, not roundtripping in a single system. For more detail on how matching works, why it doesn't work great when roundtripping in a single system, and some suggestions for working around these limitations, see:
However, the command-line task has an additional --roundtrip option that we added as a stop-gap to help address the challenges of the user interface roundtrip process. When used, it essentially ignores all existing matching logic, and instead looks for an exact match on the AtoM database objectID (a system-wide unique value), which is what AtoM will add to the legacyId column of the CSV template on export. This bypasses all the challenges with the current system and works much more reliably for roundtrips in a single system - in the future we hope to add user interface support for this option. In the meantime, see:
So the basic process would be:
- Select the descriptions you want to update, add them to the clipboard, and export them
- Open the CSV in a spreadsheet application
- It's not required, but you can remove columns you don't intend to change - just make sure you keep and DO NOT CHANGE the legacyId column
- Make your changes and save
- Use the command-line import task, with the --update="match-and-update" and --roundtrip options. I also suggest using the --skip-unmatched option - that way, if no match is found for a particular row, it will not fall back to the default of creating a new (i.e. duplicate) description, and will just skip to the next row instead.
Be sure to spot-check the outcome after. If you make a database backup first, then you have an easy way to roll back the outcome if something unexpected happens, which we generally recommend any time you are making bulk changes to the system.
Good luck!