Skip to main content

Work in progress instructions to upgrade CA between versions using an in place, git based update.

Before you start

Some qustions to consider.

  • Are there customisations to the codebase which need preserving?
  • Do the release notes mention any breaking changes?
  • Is configuration stored separately?
  • Determine git tag/id of target upgrade version

and ensure backups are up to date!

Check current status

Check what the current version of CA and the database scheme is

cat app/version.php

Confirm your current git commit

git log -n 1

Confirm your php version is supported by the target CA version. If not, you might have to [upgrade php]

php --version

Prepare system

  • Schedule downtime in monitoring
  • Put up maintenance message

Upgrading applications

Upgrading Providence and Pawtucket is largely identical, differences can be noted along the way.

Change to the application directory.

cd /path/to/providence/

Update to desired version, in this case it would be using a version 2 tag

git pull
git checkout v2.0

Check the database schema version and compare with the earlier record.

cat app/version.php

If it has changed, migrate the database contents.

./support/bin/caUtils update-database-schema

If composer.lock is present delete it

rm composer.lock

Then update dependencies using composer

composer update

Ensure the web server can read all CA's files.

find ./ -type d -exec chmod 755 {} \;
find ./ \! -type d -exec chmod 640 {} \;
chmod 755 support/bin/*

On RHEL selinux may also need to be adjusted.

chcon -R -t httpd_sys_content_t ./
chcon -R -t httpd_sys_rw_content_t ./app/log/ ./app/tmp/ ./media

Run CA included fix permissions tool

./support/bin/caUtils fix-permissions