Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

OLE Change Management TBD

This document describes the mechanics of the database version control process. How the changes get into the master schema must still be decided by the OLE development team.

Process Overview

To manage and track database changes, the Kuali OLE project utilizes Subversion to track the master state of the database at any given point in time. The ole-cfg-dbs project in the Subversion repository is considered the definitive source and is stored as a combination of XML (for database structure) and flat files (for data.)

To make changes to this master SVN project easier, the project also manages a master database schema (OLEDBA). This schema is exported nightly to the ole-cfg-dbs/development path in SVN. This allows changes to be made to the master schema using normal database tools rather than requiring the "DBA" to edit the files in SVN. Any changes made to the schema during the day will be exported by the DB-Export-OLEDBA job in Hudson every night. For this reason, never update the files in the ole-cfg-dbs/development path directly, as they will be overwritten by the state of the OLEDBA schema the next night.

Then, using this SVN project, any of the development or testing databases can be refreshed from that stored definition. In fact, on a daily basis, the OLECI (for unit testing), OLELOCAL (for developers without a local database), and OLEDEV (for the http://dev.ole.kuali.org:8080/ole-dev/ instance) are deleted and restored from this project.

The additional complication to this is that there are actually three components to the full refresh process as will be discussed below.

Rice Data Overview

Since OLE is one of a number of Kuali Rice-based projects, an installation of it also includes certain Rice tables and their associated data. However, storing this data in our master schema leads to maintenance issues when the master structure changes and potential data collisions with other Kuali projects. As such, we rely on the "master" rice datasource directly.

The database impex tool (https://test.kuali.org/svn/kul-cfg-dbs/branches/clover-integration) allows for two database definitions to be overlaid upon one another. So, for a simple install of OLE, where the Rice server is integrated into the application, the impex tool first imports the Rice tables and data into the OLE database and then adds the OLE tables and data.

This, however, does not then include any of the OLE-specific data which needs to be stored in the Rice tables. This includes items such as:

  • Workflow Documents (KEW)
  • System Parameters (KNS)
  • Test Users (KIM)
  • Application-Specific Roles (KIM)
  • Permissions (KIM)
  • Responsibilities (KIM)

To import those, we have two additional steps. (This will hopefully be a single step in the future, when Rice provides for XML import/export for all of these objects.)

  1. Run Liquibase scripts to add the KNS and KIM data.
  2. Run the workflow XML Ingester tool (part of Rice) to add the workflow definitions.

The definitions for these items are stored in the following locations:

  • ole/work/db/rice-data (KIM/KNS)
  • ole/work/workflow (KEW)

After all "normal" import processes are done, these scripts are executed as a final step to load the OLE data into the database.

ole-cfg-dbs Project Structure

  • schema.xml
  • graphs
  • formats
  • data

Rice Data Locations and Structure

  • ole/work/db/rice-data (KIM/KNS)
  • ole/work/workflow (KEW)

Document TODO Notes

  • structure
  • data
  • DBA schema
  • satellite databases
  • database refresh
  • Rice data
    • master schema from Rice project
    • OLE Data Overlay
      • Liquibase
      • Workflow
  • No labels