Backup the data
The database
If you're using the xqual/xstudio-backup image that comes with our default docker-compose configuration, the database is backuped on a daily basis and you can find the backups in the xstudio-volume-backup volume (/home/backup
in the xqual/xstudio-mariadb and xqual/xstudio-backup containers).It's strongly advised to test your backup files on a regular basis especially before updating your server!
If you're not using our xqual/xstudio-backup image, you probably have a backup process in place. If NOT, please refer to your Database Server guide for more information or check out the Backup/Restore section of the documentation.
Your custom reports
If you developed some custom XSLT reports, it's advised to backup all these XSLT (along with their associated resources i.e. images etc.) before updating.You can find all your custom XSLT reports in the xqual/xstudio-tomcat container in the
/var/lib/tomcat8/webapps/xqual/export.zip
file.So just backup this file by just downloading it from a browser by opening the URL
http://<xstudio-docker-host-name>:8080/xqual/export.zip
and verify that it contains your report XSLTs.
Backup the configuration files
Connect to the xstudio-tomcat-container container and backup all the configuration files to the dedicated persistent xstudio-volume-tomcat-conf volume (/root/conf
in the xqual/xstudio-tomcat container):
docker exec -it xstudio-tomcat-container bash
cp /var/lib/tomcat8/webapps/xqual/xstudio.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/requirement.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/bugtracking.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/sso.conf /root/conf/xqual/
cp /var/lib/tomcat8/webapps/xqual/xstudio/xstudio.conf /root/conf/xqual/xstudio/
cp /var/lib/tomcat8/webapps/xqual/xstudio/requirement.conf /root/conf/xqual/xstudio/
cp /var/lib/tomcat8/webapps/xqual/xstudio/bugtracking.conf /root/conf/xqual/xstudio/
cp /var/lib/tomcat8/webapps/xqual/xstudio/sso.conf /root/conf/xqual/xstudio/
When xstudio-tomcat-container will be restarted, it will detect those backup files and will restore them automatically wherever it is needed (hence possibly bypassing some of the parameters in the
.env
file).
Stop the service
Notify the users of an interruption of service
The first thing to do to avoid loosing some data is to ask all the users to save their data and close their XStudio instances and wait until the update procedure is completed.Shutdown all the containers
You just need to rundocker-compose down
.
Configure the version to update to
It's only needed to update the xstudio-tomcat-container container with the latest image version.To do that, you can edit your
docker-compose
file and update the version of the tomcat-service
's image
reference.
tomcat-service:
image: xqual/xstudio-tomcat:<new version>
You probably do no need to update the version of the xqual/xstudio-mariadb image as
the database schema will be automatically updated at the first start of the service (see below).
Restart the service
Startup all the containers
You just need to rundocker-compose up
.The new image(s) will be pulled automatically if necessary and the containers created/started.
If updating to a version < 10, start XStudio JNLP a first time as admin to update the database schema (mandatory step!)
Start normally XStudio (not XStudio.web) from your browser (http://<xstudio-docker-host-name>:8080/xqual/xstudio
) and log in as admin.If you're updating to a major version, you MAY be asked again for your admin password to confirm you authorize the system to update the schema of the database. Just confirm and continue.
When the migration was necessary and is completed, XStudio will re-start normally.
If a schema update was necessary, you can use the database integrity checker available from the menu Tools > Check database integrity if you wish to ensure everything's fine.
Your custom reports
If you developed some custom XSLT reports, you need to copy them on the server.Copy your custom reports in the new
/var/lib/tomcat8/webapps/xqual/export.zip
fileThis means you must pick the new
export.zip
file, unzip it, copy your custom XSLT files (along with their associated resources i.e. images etc.) in the structure and rezip it.
Check the settings and the user profiles
When some new features that need specific rights are added, their associated rights will be missing from the user profiles so these features are disabled "by default".So when you update, don't forget to check the user profiles to see if you want to add some new rights to some of your profiles.
The same way, in a newer version some of the new features may require some global settings. These settings have all default values but it's a good idea to check those just after an update.
Notify the users the service is back
Check access to:- XStudio.web (i.e.
http://<xstudio-docker-host-name>:8080/xqual/xstudio.web/
)- XStudio (i.e.
http://<xstudio-docker-host-name>:8080/xqual/xstudio/
)- the REST API server (i.e.
http://<xstudio-docker-host-name>:8080/xqual/api?command=getInfo
)and inform all the users the service is back.
That's it! your server is now updated and all your users can reconnect from their browser using the same URL.