These are the general steps that you should always follow when upgrading and existing PhixFlow instance from one release to another.
Some releases contain special instructions.
When planning an upgrade, please check the special instructions for each intermediate release and follow the additional steps as indicated.
Contents
Before Upgrading
Check Compatibility Guide and Upgrade Planning to ensure that your version of database, tomcat and java are supported in the planned upgrade. If any of these items need updating, please contact your IT team several weeks in advance of the planned upgrade.
Java upgrades
If java needs upgrading, you must verify that any JDBC connectors you have installed to non-standard databases are still supported. The standard databases supported by PhixFlow are Oracle, MS SQL Server and MySQL/ MariaDB. The drivers needed to connect to these databases are shipped with PhixFlow, and connections to external databases though PhixFlow datasources are supported by these drivers. However, if you have connections to external databases other than these - for example, Netezza, Teradata, DB2 - then you will have installed JDBC drivers for these in the folder
[tomcat home]/lib
You must check that your current version of each installed driver is compatible with the new version of java, and if not, obtain a new version of the JDBC driver from the supplier.
Special upgrade instructions
Also check Compatibility Guide and Upgrade Planning for any special upgrade instructions between your current and target versions.
Upgrade
Backup your Database
Ensure that you have a recent full backup of your database. If, for any reason, you need to rollback (see "Rollback Upgrade" below), your PhixFlow configuration and data will revert to this point.
Stop Tomcat
Stop Tomcat. PhixFlow will not be available to users until the upgrade is complete.
Environment
If necessary, upgrade to supported versions of Java, Tomcat and Oracle, SQL Server or MySQL / MariaDB.
See above for details.
Remember, if you are upgrading tomcat, to restore any JDBC drivers needed for datasources that use database technologies or versions not supported for PhixFlow's own connections. See Install Tomcat for details, but in brief, make sure that any additional JDBC drivers you use are placed in:
[tomcat home]/lib
Unzip the PhixFlow Release
Unzip the PhixFlow release package into a temporary directory.
We will refer to the new PhixFlow release as $RELEASE.
Install the new Webapp into Tomcat
Move the live phixflow installation, i.e. the directory $TOMCAT/webapps/phixflow, to an archive location.
E.g. on unix/linux: mv $TOMCAT/webapps/phixflow $ARCHIVE/phixflow-<current date>
Copy $RELEASE/webapp/phixflow to $TOMCAT/webapps.
E.g. on unix/linux: cp $RELEASE/webapp/phixflow $TOMCAT/webapps/phixflow
Copy the following files from the WEB-INF/classes directory in the archive of the live installation into the corresponding directry in the new phixflow webapp:
- phixflow-datasource.xml
- phixflow-instance.xml
- phixflow-domains.xml
- log4j.properties
- phixflow-login.xml
E.g. copy $CV_ARCHIVE/phixflow-<current date>/WEB-INF/classes, to $TOMCAT/webapps/phixflow/WEB-INF/classes
Upgrade the Database
Run all migration scripts run in sequence from the starting version to this version.
Warnings
Please note that some of the scripts can generate warning messages. One example of this is Caution: Changing any part of an object name could break scripts and stored procedures. Generally, these warning messages do not indicate a problem. However, in the event that you see any error messages, please contact your PhixFlow support team.
Oracle
E.g. for Oracle users:
cd $RELEASE/schema/oracle/migration/X.Y sqlplus myUsername/myPassword @migrate_schema_from_x_y_z_to_X_Y_Z.sql
SQL Server
E.g. for SQL Server users:
cd $RELEASE/schema/sqlserver/migration/X.Y sqlcmd -S myServer\myInstance -U myUsername -P myPassword -d myDatabase -i migrate_schema_from_x_y_z_to_X_Y_Z.sql
MariaDB (MySQL)
Some MariaDB PhixFlow migration scripts create or use privileged functions and/or procedures, and must have privileges not required by the regular PhixFlow user.
Specifically, one of the following must be true:
- the migration user has SUPER privilege, or
- the mysql global variable 'log_bin_trust_function_creators' is set to true
If neither are true, the migration script may fail and would require manual recovery.
cd $RELEASE/schema/sqlserver/migration/X.Y mysql -h myServer -u myUsername -p -D myDatabase source migrate_schema_from_x_y_z_to_X_Y_Z.sql
Re-start Tomcat
Complete
The upgrade is now complete.