Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. CI continuously monitors the 3 system of record locations
  2. As soon as a change is detected, a job is fired to generate SQL from the system of record locations
    1. The job generates SQL for MySQL and Oracle
    2. Any new or altered SQL is checked into its corresponding generated location
    3. Any old SQL is removed from its corresponding location
    4. The CI job also creates metadata describing the SQL files for each project (look in src/main/resources/META-INF)
  3. As soon as the SQL generation is complete a CI job is fired to execute the SQL
    1. The SQL execution job runs the SQL for both MySQL and Oracle against test databases
    2. The SQL execution job is a lightweight Spring based component at its core
    3. The Spring based nature of the SQL execution decouples the database creation process from:
      1. The file system
      2. The build system
      3. Source code management system
      4. "Other" random requirements imposed by the tooling being used to convert database agnostic XML into database specific SQL
    4. It also happens to run faster, but execution speed should be viewed as an extra side benefit and is not really the point or focus