OLE has three different application schemas for OLEFS, OLELS and OLEDOCSTORE respectively. All the three different schemas come with a baseline dataset that is required for the applications basic functionality. Details of individual application schemas, baseline data sets and process for adding or updating different tables in the respective schemas has been explained below;
Even though the db refresh process seems to be different for different applications within OLE, the System Integration team will be working on unifying the process across the applications.
OLEFS - The main db module in OLEFS can be located under ole-app/ole-db
The four different maven modules for OLEFS DB are as follows;
- ole-impex- This module contains information about the baseline KFS/Rice datasets
- ole-impex-master - This module has all the table definitions (schema.xml) along with data xml files for the base KFS datasets. This doesn't have any Rice related tables or data.
- ole-impex-rice - This module strictly contains the Rice table definitions (schema.xml) along with data xml files. The schema.xml that contains all the table definitions are modified for KFS needs, and so wont match with the schema.xml of the bootstrap dataset.
- ole-liquibase- This module contains information about any database changes or updates that need to be made
- ole-liquibase-changeset - This module contains the definitions for any updates that needs to be made to the base OLE schema that contains the base KFS/Rice tables/data. The updates could include creation of new tables, populating with some data etc..
ole-sql - SQL Files under the various sub-modules are auto-generatedby maven commands run under the modules in 1 & 2.
The various SQL files are auto generated by the maven process on the ole-impex and ole-liquibase modules. Do not attempt to manually update these files as they will be overridden anytime the build process is run on the ole-impex and ole-liquibase modules.
ole-liquibase-sql - These are auto-generated sql files from the ole-liquibase-changeset module.
The following must exist before you can run the maven commands;
user-LIQUIBASEBLANK
password-LIQUIBASEBLANK
Schema-LIQUIBASEBLANKcd into the ole-liquibase/ole-liquibase-changeset module mvn clean process-resources -Psql,mysql -Djdbc.url=jdbc:mysql://localhost:3306/LIQUIBASEBLANK -Dkuali.encoding=UTF-8
- ole-master-sql - These are auto-generated sql files from the ole-impex-master module.
ole-rice-sql - These are auto generated sql files from the ole-impex-rice module.
These auto-generated sql files gets executed by the maven-sql plugin on a database; weather be it MySQL or Oracle. Refer to the DB refresh process in the main Developer's guide.
cd into ole-impex mvn clean process-resources -Psql,mysql -Dkuali-deploy.version=2.1.8-SNAPSHOT
kuali-deploy.jar is a tool that helps with the generation of all the sql files etc, and so its important to know the right version of the kuali-deploy when try to extract and generate the sql files.
- ole-workflow - These are files that are put in place as per the KFS/OLEFS workflow definitions. These were manually created to be consumed by the OLEFS application at startup so that all the document definitions along with routing info is available to the application.
OLELS - OLEFS has also a db refresh process similar to OLELS but is not as advanced as in the sql files have to be individually created for both MySQL and Oracle. The Rice tables however are imported directly and executed using the maven tool.
ole-rice-db - This is the db module that has the sql files for OLELS specific tables. The rice tables are auto-imported and the following maven commands would accomplish that for us;
mvn clean install -Pdb,mysql
OLEDOCSTORE - Apache Jackrabbit is the underlying content management framework and so the database configuration is taken care by jackrabbit internally when the application is brought up.
- repository.xml - This file contains the basic configuration to be used by the jackrabbit framework including specifics on the datasource i.e MySQL, Oracle or File system.
- The very first time the application comes up, jackrabbit will create all the desired tables in the db
subsequently for cleaning the database following actions have to be performed
This is assuming that there is a docstore.home property set which essentially points to the location where all the docstore folders are generated by the jackrabbit framework.
delete all the contents under docstore.home directory