OLE Data
SYSTEM OF RECORD LOCATIONS
Seq |
Name |
Location |
Description |
---|---|---|---|
1 |
Rice Server Bootstrap |
http://svn.kuali.org/repos/ole/branches/dev/50-upgrade-test-1/ole-app/ole-db/ole-impex/ole-impex-rice | Modified version of rice-impex-server-bootstrap |
2 |
OLE Master |
http://svn.kuali.org/repos/ole/branches/dev/50-upgrade-test-1/ole-app/ole-db/ole-impex/ole-impex-master | Master data set for OLE (derived from KFS 5.0) |
3 |
Liquibase Change Sets |
http://svn.kuali.org/repos/ole/branches/dev/50-upgrade-test-1/ole-app/ole-db/ole-liquibase/ole-liquibase-changeset | Changesets applied on top of 1 and 2 |
GENERATED LOCATIONS
Seq |
Name |
Location |
Description |
---|---|---|---|
1 |
Rice Server Bootstrap |
http://svn.kuali.org/repos/ole/branches/dev/50-upgrade-test-1/ole-app/ole-db/ole-sql/ole-rice-sql | Modified version of rice-impex-server-bootstrap |
2 |
OLE Master |
http://svn.kuali.org/repos/ole/branches/dev/50-upgrade-test-1/ole-app/ole-db/ole-sql/ole-master-sql | Master data set for OLE (derived from KFS 5.0) |
3 |
Liquibase Change Sets |
http://svn.kuali.org/repos/ole/branches/dev/50-upgrade-test-1/ole-app/ole-db/ole-sql/ole-liquibase-sql | Changesets applied on top of 1 and 2 |
PROCESS DESCRIPTION
- CI continuously monitors the 3 system of record locations
- As soon as a change is detected, a job is fired to generate SQL from the system of record locations
- The job generates SQL for MySQL and Oracle
- Any new or altered SQL is checked into its corresponding generated location
- Any old SQL is removed from its corresponding location
- This assures the GENERATED locations are automatically kept in sync with the SYSTEM OF RECORD locations as changes are committed
- The CI job also creates metadata describing the SQL files for each location -
src/main/resources/META-INF
- As soon as SQL generation completes, a CI job is fired to execute the SQL
- The SQL execution job executes the SQL for both MySQL and Oracle against test databases
- The SQL execution job is a lightweight Spring based component at its core
- The Spring based nature of the SQL execution decouples the database creation process from:
- The file system
- The build system
- Source code management system
- "Other" random requirements imposed by the tooling being used to convert database agnostic XML into database specific SQL
- XML Impex
- Hard coded relative pathing issues between the java code being executed and the velocity templates
- Overall size limitation
- CloverETL Impex
- No ability to declaratively express a dependency on a published version of the tool
- Hard coded path related to workspace.prm requiring the java virtual machine to be launched from the same directory as the tool itself
- Liquibase
- Requires a connection to a live database containing the tables
DATABASECHANGELOG
andDATABASECHANGELOGLOCK
even if all you are doing is generating SQL from XML
- Requires a connection to a live database containing the tables
- XML Impex
- The Spring based execution of the SQL happens to run faster, but improving execution speed is not the point
- Decoupling the database creation process from file systems, build systems, source code managements systems, and tools that also require those things is the point
Operated as a Community Resource by the Open Library Foundation