Upgrade instructions included in the release notes for each release, and you MUST read these. General options are:
- Upgrade in-place using generated DDL
- Export all data as XML file. Create a new database and load data into it.
If your Grouper database is large (i.e. you have lots of groups and memberships), the upgrade may take some time (even hours), so don't expect it to be over in a few minutes. Subjects are resolved during import and export, so any performance problems in your subject sources will slow down the upgrade process.
Whichever method is used, backup the database first. In some cases I've found that I haven't been able to do an XML export (possibly due to internal inconsistencies in the database), but an in-place upgrade works fine after which an export also works. I'm fine with this as long as I'm certain that I have a good backup of the database and that no further changes are going to be made to that data. To stop anything making changes I stop the grouper-loader daemon and shutdown any web and web-services interfaces. If I'm feeling really paranoid I put the database engine into single user mode. If you are less paranoid, and would like to maintain read-only access to grouper you can put the API into read-only mode using the "grouper.api.readonly = true" parameter in grouper.properties (remember to do this in all deployed copies of your config files. This parameter is available in version 1.5.3 or higher.
Some config files may also need changes, check the release notes.