Currently you’re maintaining SQL-scripts for 7 different database systems, 7 create and 7 drop scripts for each. 98 files all together. As this is done manually, errors happen like last Friday, fixed on Saturday.
Every time I pull you latest changes into my fork I have to see what has changed in the meantime and take over those changes into my scripts for the Informix database system.
My idea to change the maintenance of the schema:
- Maintain only 1 xml file for each “data domain” (case.engine, case.history, decision.engine, decision.history, …)
- Use xslt files to create the sql files from that.
Most of the work can be done by a base xslt file, additionally you have to have one for every database system to define the specific data types and other exceptions from the common implementation.
I locally created a small prototype for proof of concept:
- xsd file describing the schema
- xml file for decision.engine
- xslt for base used by xslt for DB2 and Informix
- changed engine/pom.xml to call the xml transformation.
If you agree that this would be helpful I could some more time on this to create a pull request for it.