One of the most popular enhancement requests we have received recently is to enable the same “Partial Deployment” capabilities for database objects that have been empowering Oracle EBS developers/administrators since FlexDeploy 3.0. With the EBS solution, developers can source customizations from a Source Control Management system, and migrate them across their entire EBS Topology. Partial Deployment allows developers to pick and choose the objects to migrate, which is critical for in large shared environments like EBS.
Today Flexagon released Partial Deployment support for the JDBC plugin, which manages database changes for a vast array of JDBC compliant databases. The plugin interrogates SQL scripts from an SCM and populates them into a candidate list for build and deploy. At deployment time, the plugin will execute the statements within the selected files using JDBC. These new plugin operations provide many useful features, many of which are already familiar and appreciated across the FlexDeploy platform.
- Populate SQL files from any popular SCM
- Override JDBC URL by SQL statement
- Override user/password credentials to execute statements
- Manage order dependencies
- Manage order by file extension
- Manage behavior by custom file extensions
- Ignore failures by SQL file extension
- Ignore compilation errors by SQL file extension
- Property replacement for environment specific values
- Configurable retry logic to resolve dependencies
- Customize target location of deployed SQL files
- Exclude/Include files matching regular expressions
Let’s look at an example.
FlexDeploy ships build and deploy workflows for managing JDBC partial deployment, or you can create your own to add custom logic.
In topology, I have created an instance called JDBC, and mapped it to my Build and Development environments.
JDBC/DEV is mapped to an endpoint which contains a JDBC driver.
And its properties define the path to find the driver, the JDBC URL, and the credentials for the connection.
The project is created as Partial Deployment of type JDBC.
The project points to the build & deploy workflows and instances, and the location of the source code in the SCM (Subversion in this example).
After optionally configuring any project properties to customize the behavior, we are ready to populate the files into FlexDeploy from the SCM. FlexDeploy discovers the files, and defaults the metadata based on the properties set on the project.
For a full description of the metadata, see the JDBC Plugin Guide on our wiki. As an example, you will notice that the target location is defaulted to the value of a property set on the project. However, you can override this on a file by file bases, by simply changing the value.
Now that the files are populated, we can simply select one or more files and assemble them into build packages (which will extract a revision from the SCM).
And deploy them to one or more environments. The plugin will manage the connection to the database, the parsing of the SQL files, and execution of the statements using JDBC.
The controls, visibility, and all other features of the platform are integrated into the solution. Manage your releases across the entire pipeline, for EBS, SOA, database objects, and much more.