---
title: "Patch Installer"
canonical: "https://wiki.yellowfinbi.com/space/yfcurrent/2203923/Patch%20Installer"
format: markdown
---
> Macro (anchor)



> Macro (toc)

# Overview

> Macro (styleclass)
> 
> [Patch Installer#top](https://yellowfin.atlassian.net/wiki/spaces/yfcurrent/pages/2203923/Patch+Installer#PatchInstaller-top)

All text and images in the Yellowfin patch installer are customisable in the same way as the main installer, using a custom properties file, or by command-line arguments. The patch installer does not require many options, as these are all read from the Yellowfin installation’s configuration files.


The patch installer supports one special command-line argument, to specify the Yellowfin installation directory. This is not supported as a property in the custom properties file:

| **Argument** | **Value** |
| --- | --- |
| `installdir` | The Yellowfin Installation Directory |

Tip: If a silent installation update is unsuccessful, you will be able to find errors written into the upgrade log.

# Available Properties

This is a list of all properties that can be set in the Patch Installer via the custom properties file or as command-line arguments.


<details>
<summary>Text Properties</summary>

```
# text translations

# application name
installer.appname=Yellowfin
installer.productname=${installer.appname} Patch

installer.warn.guionheadless=Headless environment detected, but graphical installer requested.\nIf installation fails, try running the command-line installer.
installer.error=Error
installer.errortitle=Installation Error
installer.errormsg=An error occurred during installation:
installer.installing=Installing
installer.install.complete=${installer.productname} Installation Complete
installer.install.failed=${installer.productname} Installation Failed
installer.quit.title=Are you sure you want to quit?
installer.quit.msg=This will cancel the installation.
installer.title.msg=${installer.productname}
installer.footer.msg=(Yellowfin Pty Ltd (c) - http://www.yellowfinbi.com/)

installer.button.yes=Yes
installer.button.no=No
installer.button.browse=Browse...
installer.button.cancel=Cancel
installer.button.previous=Previous
installer.button.next=Next
installer.button.quit=Quit

# general text for the various installer panels
installer.infopanel.info=Please read the following information:
installer.licencepanel.info=This software product is subject to a licence agreement.
installer.licencepanel.accept=I accept the terms of this licence agreement.
installer.licencepanel.notaccept=I do not accept the terms of this licence agreement.
installer.targetpanel.intro=This patch updates ${installer.appname} to version 6.1.\n\nBefore continuing, please:\n -  Shut down ${installer.appname}.\n -  Backup your ${installer.appname} database.\n\nPlease select the directory where ${installer.appname} is installed.
installer.targetpanel.doesnt.exist=The selected directory does not exist.
installer.targetpanel.notvalid=The selected directory does not appear to be a ${installer.appname} directory.
installer.targetpanel.prompt=Select the installation directory: 
installer.targetpanel.notspecified=Install path not specified
installer.targetpanel.prompt.cmd=Enter the installation directory:
installer.backuppanel.intro=Please select a directory to store backup archives:
installer.backuppanel.doesnt.exist=The selected directory does not exist.
installer.processpanel.title=Installing Update
installer.processpanel.finished=Finished
installer.finishpanel.successful=Installation has completed successfully.
installer.dbpanel.dbtype.empty=Please select the Database Type.
installer.dbpanel.url.empty=Please enter the JDBC URL.
installer.dbpanel.password.nomatch=Passwords do not match.
installer.dbpanel.title=${installer.appname} Database Details
installer.dbpanel.info=Please enter the connection details for the ${installer.appname} configuration database.
installer.dbpanel.dbtypelabel=Database Type:
installer.dbpanel.urllabel=JDBC URL:
installer.dbpanel.usernamelabel=Username:
installer.dbpanel.passwordlabel=Password:
installer.dbpanel.confirmpasswordlabel=Confirm Password:
installer.dbpanel.validate.title=Validate Connection Details
installer.dbpanel.validate.msg=Do you wish to validate the connection details entered?\nThe installer will attempt to connect to the database using the information entered.
installer.dbpanel.conntest.error=Error testing connection:
installer.dbpanel.conntest.success=Connection was successful.
installer.dbpanel.conntest.driver=Unable to load the JDBC Driver:
installer.dbpanel.conntest.conn=Unable to connect:

installer.dbpanel.as400=AS/400 DB2
installer.dbpanel.cachedb=CacheDB
installer.dbpanel.db2=DB2
installer.dbpanel.ingres=Ingres
installer.dbpanel.mysql=MySQL
installer.dbpanel.oracle=Oracle
installer.dbpanel.postgresql=PostgreSQL
installer.dbpanel.progress=Progress
installer.dbpanel.sqlserver=SQL Server / MSDE
installer.dbpanel.sybasease=Sybase ASE
installer.dbpanel.sybaseasa=Sybase SQL Anywhere / IQ
installer.stylepanel.title=Style Updates
installer.stylepanel.info=The ${installer.appname} 6.1 update will apply updated stylesheets and images.\nIf your installation has modified styles, you will need to re-apply them after running this patch.

installer.process.backupdb=Backing up database
installer.process.backupwebapp=Backing up webapp
installer.process.compactdb=Compacting database
installer.process.extractfile=Extracting
installer.process.extractupdate=Extracting update
installer.process.runqueries=Running SQL Queries
installer.process.updateconfigdata=Updating configuration data
installer.process.updatelibs=Updating libraries
installer.process.convertcontent=Converting Report Content
installer.process.shutdowndb=Closing database
installer.process.updatecss=Updating stylesheet
installer.process.updateimages=Extracting new images
installer.process.updatestyle=Updating styles
installer.process.updaterefdata=Updating reference data
installer.process.updateschema=Updating ${installer.appname} Schema
installer.process.upgradetutorial=Upgrading tutorial database
installer.process.copyingfiles=Copying files

# text used in the command-line installer
installer.cmd.dbonly.intro=This patch upgrades a ${installer.appname} database for use with ${installer.appname} 6.1. Only the database will be upgraded. The application update must be applied separately.
installer.cmd.dbtype.prompt=Database type?
installer.cmd.invalidselection=Invalid selection
installer.cmd.applynewstyles.prompt=Apply new styles?
installer.cmd.applynewstyles.info=The updated styles and images will be applied to your installation. Any modifications you have made may be overwritten.
installer.cmd.manualstyles.info=Your current style will be preserved. Styles required for new functionality will be appended to existing stylesheets.

# installation validation messages
installer.buildversion.too.low=This patch upgrades ${installer.appname} from version 3.3 or later to 6.1. Your ${installer.appname} installation is at version {0}.
installer.buildversion.too.high=This patch upgrades ${installer.appname} from version 3.3 or later to 6.1. Your ${installer.appname} installation is at version {0} and does not require this patch.
installer.builddate.too.low=You need to update to a more recent version of ${installer.appname} before applying this patch.
installer.builddate.too.high=Your ${installer.appname} installation does not require this patch.
installer.not.fullversion=Only full version ${installer.appname} installations can be patched.
installer.schemaversion.too.low=You need to update to a more recent version of ${installer.appname} before applying this patch.
installer.schemaversion.too.high=Your ${installer.appname} installation does not require this patch.

```
</details>

<details>
<summary>Resource Locations</summary>

```
# resource locations
resource.infopanel.html=resources/index.html

resource.lhs.infopanel.img=resources/border1.png
resource.lhs.licencepanel.img=resources/border3.png
resource.lhs.targetpanel.img=resources/border5.png
resource.lhs.backuppanel.img=resources/border5.png
resource.lhs.stylepanel.img=resources/border5.png
resource.lhs.processpanel.img=resources/border6.png
resource.lhs.finishpanel.img=resources/border8.png

```
</details>

<details>
<summary>Installer Behaviour</summary>

These properties change the behaviour of the installer.

```
# don't show the style update panel
action.hidestylepanel=true

```

See below for further information.
</details>

### Updating a Specific Component

You can use the Silent updater to upgrade a specific component of Yellowfin, that is the filesystem or the configuration database, or both.

For instance, upgrading the database:

`java -jar update.jar -silent "YFPath" option.upgrade=database`

Where, **option.upgrade** specifies the component to be upgraded. You can use the keyword ‘filesystem’ to update the Yellowfin file system.

This requires specifying the Yellowfin file path to point to the database. Since this information is extracted from the file system (specifically the web.xml file), this method is dependent on the file system.


#### Independent component upgrade

The following examples demonstrate how to independently update a Yellowfin component. This means when upgrading the database, you will not need to specify the file path. 


**Condition 1:** Independent upgrade of only the database. Requires passing additional parameters, such as jdbcUser, jdbcPassword and jdbcURL. The jdbcURL specified here will let the updater know the database type.

Example:

`java -jar yellowfin-20180402-update.jar -silent option.upgrade=database jdbcUser=yellowfin jdbcPassword=password jdbcURL=jdbc:mysql://localhost:3306/yellowfin_74_master`

Where,

- **option.upgrade **- set this to the keyword ‘database’ to update the configuration database, or ‘filesystem’ to update Yellowfin files. For example, option.update=database.
- **jdbcUser** - username to connect to the Yellowfin configuration database (not required when updating the file system.)
- **jdbcPassword **- the password to the above (should not be encrypted)
- **jdbcURL **- the JDBC connection URL. Lets the system know specific database details, such as its type and name, server URL, connection port. (Tip: if you do not know this, you can manually retrieve this from the web.xml file from your Yellowfin folder.)

  


**Condition 2:** If you want to use a different driver class, or if the jdbcURL is not recognised by the updater, then an additional jdbcDriver parameter must be passed.

For example,

`java -jar yellowfin-20180402-update.jar -silent option.upgrade=database jdbcUser=yellowfin jdbcPassword=password jdbcURL=jdbc:mysql://localhost:3306/yellowfin_74_master jdbcDriver=com.mysql.jdbc.Driver`

`where,`

- **jdbcDriver **- specifies the canonical class name for the JDBC Driver.


**Condition 3:** You want to use a different driver to connect to the database, or provide your own jar file. This requires passing the driver to be used, in conjunction with the other parameters. Ensure that the driver you upload belongs to a database supported by Yellowfin. Note that you will not be able to use the *java -jar* classpath.

Example:

`java -cp mysql-connector-java-5.1.25-bin.jar:yellowfin-20180402-update.jar com.hof.patch.PatchInstaller -silent option.upgrade=database jdbcUser=yellowfin jdbcPassword=password jdbcURL=jdbc:mysql://localhost:3306/yellowfin_74_master jdbcDriver=com.mysql.jdbc.Driver`

  


---

# Chart and Configuration Defaults

Yellowfin 9 has Chart and Report defaults for colors, fonts, styles, padding and other types of visual formatting. These settings impact the default look and feel of your charts and reports without requiring much effort to further customize them. These settings can be enabled while upgrading. See below for description.

- **Configuration level defaults: **These are color, fonts and style defaults for reports and charts. Administrators are manually able to update these via the Admin Console Content settings.

- **Chart defaults: **These are default chart formats set up in the Chart builder. This includes settings such as chart axes, legends, sorting, padding, and other visual elements.

##   
Silent Installer Options

The following options can be used for these settings while upgrading with the Silent Installer.

| **Setting** | **Option** | **Value** |
| --- | --- | --- |
| **Configuration level defaults** | option.migrate9Configuration | Applies the new chart and report formatting defaults controlled at the Configuration level, introduced in Yellowfin 9. These are color, fonts and style defaults for reports and charts. Set this option to **true** if you want all the new configuration defaults to be applied to your instance. If you don't set this option at all, it defaults to **false**. |
| **Chart defaults** | option.migrate9ChartDefaults | These are default chart formats set up in the Chart builder, introduced in Yellowfin 9. This includes settings such as chart axes, legends, sorting, padding, and other visual elements.  Set this option to **true** if you want all your charts to take the new chart default formatting. If you don't set this option at all, it defaults to **false**. |
| **Tomcat Update** | option.updateTomcat | Indicates whether the silent updater should update Tomcat in parallel. Defaults to **false**. |
| **Tomcat Update** | option.updateTomcat.force | Determines whether the silent updater should force a Tomcat update when the configuration check fails. Defaults to **false**.<br>This option requires **option.updateTomcat** to be set to **true**. If **option.updateTomcat.force** is set to **true **while **option.updateTomcat** is **false**, an error will be raised and the silent updater will be halted. |

## Command Line Options

In the Command line installer, the user is prompted for each option individually with a **yes/no** response. Shown in the example screenshot below.


![image](media://cc1bd205-b02a-43fa-9b8b-85f6e9ab94f3)

## Bundling Out-of-the-Box Content with the Installer

Out-of-the-box content can be bundled with the Installer. This will import the content during the installation process.  The content will be imported with the SkipDatasourceValidation flag enabled, this will mean that it will not attempt to connect to any datasource during the import.

To enable this functionality a YFX named InitialImport.yfx should be copied into the root of the Installer package. If the YFX is found during installation, the file will be staged for  import. However the actual import will not take place until Yellowfin is started for the first time.

The import process also allows for the settings of imported datasources to be over-ridden during installation.  The options to perform this are:

**option.importDatasourceUrl **- This will override the JDBC connection string for all Generic JDBC datasources that are included in the InitialImport.yfx file, with the value passed in for this parameter.

**option.importDatasourceDriverClass** - This will override the JDBC driver class for all Generic JDBC datasources that are included in the InitialImport.yfx file, with the value passed in for this parameter.

**option.importDatasourceUsername **- This will override the JDBC username for any datasources that are included in the InitialImport.yfx file, with the value passed in for this parameter.

**option.importDatasourcePassword **- This will override the JDBC username for any datasources that are included in the InitialImport.yfx file, with the value passed in for this parameter.

**option.skipDataSourceValidation **- This can be used to disable Skip Datasource Validation during import which is enabled (true) by default. Valid options are true/false. If this is enabled, any datasources included in the YFX file will need to be accessible during import.