DB Update Procedures
When building scripts, you need to take into account your Rice server (if running a separate instance) All the database upgrade scripts are broken up on the assumption that you could have separate databases for these components of the Kuali infrastructure. KFS Upgrades are delivered via Liquibase files. This allows for the updates to be given in a database-agnostic fashion. They have been primarily written against Oracle, but have the needed adjustments to allow them to run under MySQL as well, and have been tested against both. For information on how to generate SQL from Liquibase scripts or apply them directly against a database, see the Running Liquibase Scripts section of the Database Coding Standards page, for the Liquibase Overview and Sample Scripts.
Rice Database
Rice Database Upgrade Scripts
These should be run before any KFS upgrade scripts. Please see the KFS Technical Release Notes and Upgrade Notes in this KFS Documentation space for instructions on running these for a particular KFS release.
However, in general, the scripts will be split into client updates (to be run against KFS database) and server updates (to be run against Rice database) and will be available at:
- kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/db/rice-client-script.xml
- kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/rice_server/rice-server-script.xml
See the KFS section below for scripts which update the rice database with new/changed KFS data.
KFS Database
Note: The KFS upgrade scripts assume that the Rice database has already been updated with any additional data or structural changes.
KFS Rice Data Upgrade Scripts
With KFS there are updates to core Rice data tables. The scripts below need to be run against your Rice server database. If you are running with Rice embedded (no separate Rice server) then this will be your KFS database.
The Rice upgrade scripts are to be found in kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/rice_server
You should review the contents of each to see what they are doing before executing them.
Script | Notes |
---|---|
kew_upgrade.xml | Updated KEW data (ex: changes to doc types, such as help doc URLs) |
kim_upgrade.xml | Updated KIM data (ex: new/removed permissions/responsibilities) |
parameter_updates.xml | Updated Parameter data. |
KFS DB Updates
The KFS upgrade scripts are to be found in kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/db This is the most important set of scripts, as KFS will simply fail to work if these are not executed.
KFS DB Structure Updates
The master file for structure updates is: kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/db/master-structure-script.xml
. It simply executes all the scripts under 01_structure.
Scripts under 01_structure are named by module and contain any necessary database structure updates (new tables, new columns, etc.) for the particular release. For example:
- coa-module-structure-updates.xml would contain any necessary structure updates for the COA module.
- puarp-module-structure-updates.xml would contain any necessary structure updates for the PURAP module.
- etc.
KFS DB Data Updates
The master file for data updates is: kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/db/master-data-script.xml
. It executes all the scripts under 02_data
.
Scripts under 02_data are named by module and contain any necessary database data updates (new records, updated values, etc.) for the particular release. For example:
- coa-module-data-updates.xml would contain any necessary data updates for the COA module.
- puarp-module-data-updates.xml would contain any necessary data updates for the PURAP module.
- etc.
KFS DB Constraint Updates
These are done last to avoid any parent/child record issues.
The master file for constraint updates is: kfs/src/main/resources/org/kuali/kfs/db/upgrades/oldVersion_newVersion/db/master-constraint-script.xml
. It executes all the scripts under 03_constraints.
Scripts under 03_constraints are named by module and contain any necessary database constraint updates (new foreign keys, unique constraints, etc.) for the particular release. For example:
- coa-module-constraint-updates.xml would contain any necessary constraint updates for the COA module.
- puarp-module-constraint-updates.xml would contain any necessary constraint updates for the PURAP module.
- etc.
KFS DB Optional Updates
These are optional and not included in a master script. It is up to the implementing institution to determine if they want to run these against their local database. Optional updates are included under 04_optional.