Rather than changing applications by the traditional DDL mechanisms (create, alter, drop), a more declarative approach would be simply to specify what the new schema looks like, and have the system perform whatever structural modifications are required.
Of course, there are scenarios where such modifications are necessarily lossless and transformations must be provided, but these scenarios could be detected and therefore automated as much as possible.
The following infrastructure would need to be in place to achieve this change:
- Declare syntax for all catalog objects
- Schema compare for all catalog objects
- Some mechanism to provide transformation statements between schema versions
- Improved reconciliation with the device layer (same mechanisms, but at the device layer)