Lure's design was optimized around the following two assumptions:

  • In general changes to tables cannot be fully automated. (See Table Changes and Automation)
  • In general changes to all other database object types (including constraints and indexes) can be fully automated.

Lure uses a different approach when deploying changes to tables vs. changes to other object types:

  • Lure employs table patch files (that can be reviewed and altered by users) to deploy changes to tables.
  • The only way that Lure will ever make changes to tables that could affect data is by making use of  these user reviewed patch files.
  • For all other object types (including constraints, indexes, materialized views etc. ) Lure fully automates the deployment of changes.

Lure table patch files are created, reviewed, tested and approved during development and before the patch files are added to the source code repository.

  • At deployment time no user review of database changes are required.
  • Deployment from the source code repository is fully automated.

Note that it is only because of this feature that it is possible to have fully automated integration (or nightly) builds with Lure. For a more in-depth discussion of the advantages of this approach see Script Review.