Traditionally, migrating database object changes are a manual, tedious, and error prone process. Making changes to database structures is not like deploying updates to code – you cannot simply replace existing structures if you want to preserve the data (e.g. a table cannot be dropped and recreated to look like the new design without losing existing data). When this lifecycle is managed through manual processes, organizations deal with quality issues stemming from human error, slower project delivery, lack of visibility into what changes are deployed to which environments, and an overall lack of control. While development has benefited from continuous processes and DevOps, database seems to have been left behind.
While application development and operations have benefited from processes and tools related to DevOps, Continuous Integration, and Continuous Delivery, database and developer tools (such as APEX) development and administration has been left behind. FlexDeploy and the Oracle Database and Oracle APEX plugins change all of that, enabling developers and DBAs to move at the speed demanded by business and IT leaders.
FlexDeploy simplifies and standardizes deployments for complex, high velocity application releases across any environment.
Typical Lifecycle Management of Database Changes
|Manually comparing a new table or index structure against the current database structures to identify the required alter and/or create statements that would need to be executed.|
|Executing the alter and/or create statements in the development environment.
|Repeat steps above as additional changes are applied.
|Promoting the changes to a QA environment requires either manually comparing the database structures against the changes or executing the statements in the exact same order in which they were executed in development (assuming the environments were in sync to start with). Repeat this step for each additional environment that the changes need to migrate to.|
Lifecycle Management of Database Changes with FlexDeploy
|Creates a baseline (a snapshot of all database structures for the schema) of the database objects at a given point in time.|
|Identifies differences between environments and generates the DDL necessary to synchronize the environments by comparing baselines from the target environment and the deployed version.|
|Deploys a baseline to a target environment (such as reverting to a previous version of the database structures.)|
|Tracks what was deployed where and when using FlexDeploy tooling.|
|Allows users to approve and schedule deployments using FlexDeploy automation.|
|Visibility to what changed, when, and by who|
|Utilizes the same DevOps platform to deploy all related artifacts for a given project at the same time (e.g. code, configuration, and database objects.)|
- Manage deployments of entire schema(s).
- Manage partial deployment of objects in a schema(s).
- Supports a wide range of object types.
- Source changes from an SCM or “Build Database”.
- Ability to sync a schema from different starting points.
- Manage object renames.
- Ability to simulate deployments so that generated DDL can be reviewed ahead of time.
- Grants are managed with each object.
- Constraints are managed with each Table and View object.
- Automatically export APEX application and optionally commit to SCM
- Selectively import entire application or individual pages and/or shared components
- Adopt CI to trigger the build and deploy process automatically
- Compare individual pages and/or components across all environments to find differences
- Change detection during deployment, so application/page/component are skipped if already deployed into an environment
- Automate deployment of ORDS, SODA, and other artifacts and use Release Pipelines to streamline the deployment and release of all related components of the application.