This part of Schema Compare displays specific differences between the SQL code of two given database objects. It also allows you to export the SQL code of any of the two objects in various ways and you can also deploy changes based on the actions that you have used to resolve the differences.
Comparison Area has the following tabs:
- Script Definition - displays the SQL code of both objects and the differences between them
- Change Script - displays the change script SQL code that will be generated in order to resolve the differences
In the Script Definition tab, differences can be resolved one by one with different actions.
To resolve differences between two objects in Script Definition
- In Overview Grid, select a row with two different objects
- You should now see the specific differences displayed in the Comparison Area | Script Definition tab
- Select a specific difference by simply clicking on it. A border should appear to signal that the difference is currently selected
- Right-click and select the action that you would like to use to resolve the difference
Once you resolve all the differences, you will probably want to deploy the changes. This can be done in two scopes:
- Deploy changes of all objects - in this case, you generate and execute a change script for all objects that are resolved/not excluded in the Overview Grid
- Deploy changes of a single object - this method uses the Change Script tab
To deploy changes of a single object
- Resolve all differences as described in the walkthrough above
- When you are done, switch to the Change Script tab
- You should see a generated change script that is based on the resolution actions you have used. To deploy the changes, simply click the Deploy button /. If you just want to generate the script rather than deploy it immediately, use one of the three buttons to the right of the Deploy button
Comparison Area Toolbar
||Executes the generated change script in the source/target to address the differences|
||Export/Copy/Open SQL Worksheet
||Exports the generated change script for source/target to a file/clipboard/Worksheet|
||Resolves all differences between the two objects using the selected action|
Continuous Integration and Delivery
About Continuous Integration and Delivery in Toad Edge®
Toad Edge aims to simplify Continuous Integration and Continuous Delivery (CI and CD) processes by providing build steps that can be used in your CI/CD systems (Jenkins, TeamCity and others).
CI/CD process can be comprised of multiple build steps. Consider this illustrative workflow where changes made in development database are deployed to staging database:
- Compare the staging database with a baseline to check for unintended changes made since the last deployment
- Compare the development database with the staging database
- Generate HTML reports
- Generate change SQL script
- Create a snapshot of the staging database as a backup
- Deploy the change script to the staging database
- Create a new baseline snapshot of the staging database
To create a build step in your CI/CD system, several files are required:
- Batch file or shell script (generated by Toad Edge)
- Connection information in XML format (generated by Toad Edge)
- Toad Edge JAR file with additional libraries (available for download here)
In general, each build step can be broken down into three stages:
- Your CI/CD system executes the batch/shell script generated by Toad Edge
- The script launches Toad Edge JAR with specific arguments to perform the desired operation
- If there are no errors, the build step is successfully finished
The way to create build steps depends on whether you are using Jenkins or a different CI/CD system.
Creating Build Steps - Jenkins
IMPORTANT: To execute build steps correctly, Toad Edge requires a 64-bit installation of Java Development Kit (JDK), however, 32-bit Java is usually used by default. It is therefore necessary to create a JAVA_HOME system variable pointing at 64-bit JDK directory.
Please do the following steps to perform the configuration:
- Right-click This PC and select Properties | Advanced System Settings | Environment Variables
- Click New in System Variables
- In the Variable Name field, enter JAVA_HOME
- In the Variable Value field, enter your JDK installation path, e.g. C:\Progra~1\Java\jdk-11.0.1
NOTE: Toad Edge CLI works for JDK >= 11. The CLI has been tested with JDK 11.
Creating build steps in Jenkins is easier than in other CI/CD systems since Toad Edge provides its CI/CD functionality in the form of a Jenkins plugin. This topic explains how to install the plugin and use it to create build steps.
The Toad Edge Jenkins plugin can be downloaded here.
To install and configure Toad Edge plugin in Jenkins
- In Jenkins, go to home page and select Manage Jenkins from the left menu
- Select Manage Plugins
- Switch to the Available tab and type Toad Edge into the Filter box
- Check the checkbox next to the Toad Edge plugin name and then select Install without restart or Download now and install after restart
- Once the plugin is installed, download Toad Edge JAR file with additional libraries in zip archive from here
You will now need to configure the plugin:
- In Jenkins, go to home page, then select Manage Jenkins from left menu
- Select Configure System
- Scroll down until you see Toad Edge for Jenkins. Fill in the path to the Toad Edge zip archive that contains the JAR file and a library folder
- Save or Apply the changes
With the plugin installed and configured, you can start creating new build steps.
In this example, we are going to create a new Generate create SQL script build step. We assume that a project has already been created in Jenkins.
To create a new build step (Generate create script) in Jenkins
- In Jenkins, click on your project, and select Configure from the left menu.
- On the configuration page, scroll down to the Build section
- Click Add build step and then select Toad Edge: Generate Create Script
- Enter the path in Input file/folder field. The input can be:
- Connection XML file
NOTE: Connection XML files can be obtained by exporting a build step in CI/CD Wizard.
- Repository folder structure
- Snapshot file
- In the Output file, enter the destination folder and the file name for the generated create script
- Save or Apply the changes.
- Build the Project and you should see the generated create script file in the destination folder
Creating Build Steps - Other Systems
In case you are not using Jenkins, you can still take advantage of Toad Edge CI/CD build steps as long as your system is able to run batch files/shell scripts.
This example illustrates how to create a Create Snapshot build step and use it in TeamCity.
To create a new build step in TeamCity using Toad Edge CI/CD Wizard
- In Toad Edge, click the CI/CD (Continuous Integration and Delivery) button on main toolbar to open the CI/CD Wizard
- Select Create Snapshot from the available builds
- Configure the path to toadedge.jar (obtained from here). The exported batch/shell script will use this path to look for the jar file, so enter the path relative to the path of the script (Export Path in the last dialog).
- We choose to set Export Path to N:\TeamCity\working_directory
- The toadedge.jar file will be located in N:\TeamCity\working_directory\jars
- Therefore, the toadedge.jar file path will be .\jars (relative) or N:\TeamCity\working_directory\jars (absolute)
- In the next dialog, select the Connection and Database that you would like to take a snapshot of
- The connection is exported as an XML file. If we choose to place it in a different folder than the exported script, we have to modify the Connection File Name path in the same way as in step 3
- You can also change the Output file name and path (relative to the Export Path)
- In the final dialog, configure the Export Path first. This is the destination folder for the exported script and other files
- Now change the Command File Name if you wish. The suffix of the file name determines whether the file will be a batch file (.bat) or a shell script (.sh)
- Since we are running TeamCity on Windows, it is better to use batch script format. On Linux, shell script would be a better choice
The rest of the configuration is done in TeamCity. This guide assumes that you have already created a Project and a Build Configuration.
- In TeamCity web UI, locate your Project and a Build Configuration to which you would like to add a new build step
- Open the Build Configuration and select Build Steps from the left menu
- Click the Add build step button
- From the Runner type dropdown menu, select Command Line
- The fields that you now need to configure are:
- Working directory (you might need to click Show advanced settings) - this is the directory where TeamCity will look for and run the batch/shell script (in our case, same as Export Path in CI/CD Wizard)
- Run - select Executable with parameters
- Command executable - enter the name of the script here (with or without the suffix)
- Once you are done with the configuration, Save the changes
- Run the Build Configuration to see if everything is configured correctly. If the build step is run successfully, you should see the newly generated snapshot in the script folder