Upgrade the censhare system
Tutorial to upgrade censhare Server and Service Client, the database, and the configurations.
A walk-through of the update process that enables administrators to perform an update of the censhare system by themselves.
Release information
This tutorial is only valid until censhare 2021.2.1.
As of censhare 2021.2.x:
- To install a new censhare system or upgrade your existing system to censhare 2021.2 or above, you have to install or update to censhare WP and Keycloak.
- There are some important changes to installation and configuration.
- Continue here with the installation and upgrade: censhare WP
Preparation
Create backups
To be able to roll back your update during the update process, create the relevant backups first.
Create a backup of the database. For example with a Database Export on your Oracle Database or PostgreSQL Database
Create a backup of the assets in your censhare system.
To compare changes of configuration files with your current censhare-Server version, backup the app directory:
CODEcp -a ~/css/app ~/last_css_app
Prepare Oracle database
Since censhare-Server version 2020.1.x, it is required for Oracle Databases to Enable Oracle Extended Data Types.
Update censhare - Bugfix release
For an update to a new bugfix release, just run the following command. You can do this for censhare-Server and censhare-Service-Client separately.
yum update censhare-Server censhare-Service-Client --enablerepo="censhare*"
Update censhare Server - minor/major release
Update to minor/major releases may include updating your configuration files, your assets, and the database as the RPM may update the Database Schema if necessary. So for a rollback, a backup restore may be needed.
STEP 1: Create the necessary backups to be prepared for a roll-back. For more information, see the section Preparations.
STEP 2: Retrieve the necessary repositories and change the repository URL as explained in Available Repositories.
STEP 3: Enter the following command:
yum update censhare-Server censhare-Service-Client --enablerepo="censhare*"
This will update all components.
Please see RPM Release notes for version-specific changes, such as a change in Java version or a switch of startup method to systemd.
What happens during the update process?
censhare-Server will be stopped.
The software will be unpacked by the RPM and overrides the current software.
The work directory will be synced with changes from work-template.
The script DatabaseUpdate.sh update will be executed in order to make Database Schema updates. It will log to ~corpus/work/logs/db-update-<current-date-and-time>.log.
You can verify the Database Schema version with the following command.CheckJDBC.sh
This script uses the JDBC driver to connect to the configured database and queries for typical tables in the censhare database schema. It will also query the version of the database schema like in the following example.
Connecting to database with user 'corpus' and url: jdbc:postgresql://my-database-server:5432/corpus Connected!SQL test successful. Found 20 parties. database.version: 2020.1.0.0000 successfully done.
Files that have been compiled during runtime will be removed
censhare-Server will be started if it was running already when the RPM update started. If censhare Server was stopped when the RPM update started, it will remain stopped.
Update the configuration files
You have to manually update your configuration files. This is done by comparing the old with the new configuration files and updating the new configuration files accordingly. Further hints regarding important changes for this update are listed in ~/css/Changes-Update.txt. You find this file in your censhare directory after the update.
STEP 1: After the RPM has been updated and the app directory for the old version has been saved as mentioned above under Preparations, you can run the following command to get a list of configurations files that should be reviewed for changes.
{ # check for customizing changes
echo "The following files needs to be updated: "
cd ~/cscs/app && for i in $(find services/ config/ -type f ! -name "*save*" | sed "s/\..*\./\./g" | sed "s/-[0-9]*-[0-9]*-[0-9]//g" | sort | uniq)
do diff -q ~/last_css_app/$i ~/css/app/$i"
done
}
Example comparison
Example comparison in editor BBEdit for configuration of the filesystem, with the custom configuration (left) and the new default configuration (right). You can compare each part of the files and apply changes from one side to the other.