Redgate Change Control 4

Project settings

In v5, Redgate Change Control has been renamed to Flyway Desktop. Check out the latest documentation at https://documentation.red-gate.com/fd


All settings specific to Redgate Change Control are stored in redgate-change-control.json.

It is recommended that all paths within the file are specified as relative paths and point to files or folders within the repository being version controlled.

Root elements

NameRequired?TypeDescription
versionYesStringThe version of the settings file. This should not be altered.
nameYesStringThe display name of the project.
idYesStringA unique identifier for the project. This should not be altered.
databaseTypeYesString

The type of database being managed by this project.
Oracle and SqlServer are the only types which currently have extensive support.
There is low-level support for other databases types supported by flyway.

schemasYesString ArrayThe schemas to track. See database connections for more information.
developmentDatabaseNoObjectThe connection information for the development database.
This is usually stored in the user settings file.
developmentNoObjectSettings relating to the capturing of database changes in a schema model folder.
deploymentNoObjectSettings relating to migration generation and deployment.
capabilitiesNoObjectSettings relating to database-type-specific capabilities

Development Database

NameRequired?TypeDescription
connectionProviderYesObjectThe database connection information. See below for more information.

Development

NameRequired?TypeDescription
scriptsFolderYesStringThe location of the schema model folder.

Deployment

NameRequired?TypeDescription
flywayConfFilesYesString ArrayOne or more flyway configuration files, configuring migration script deployment.
shadowDatabaseYesObjectThe connection information for the shadow database.
repeatableMigrationTypesNoString ArrayList of object types for which to generate repeatable migrations. This is none by default.
A sensible list of object types for Oracle might be ["Function", "Package", "PackageBody", "Procedure", "Trigger", "Type", "MaterializedView", "View" ]

Shadow database

NameRequired?TypeDescription
schemaNo*StringWhen only tracking a single schema, the shadow database can be set as a schema on the same database as the development database, rather than being a full database in its own right.
connectionProviderNo*StringThe database connection information. See below for more information.

*One of schema and connectionProvider must be provided.

Capabilities

NameRequired?TypeDescription
comparisonNoObjectSettings for comparing databases and schema models.
codeAnalysisNoObjectSettings for static code analysis.

Comparison (Oracle)

NameRequired?TypeDescription
filterNoStringPath to SQL Compare for Oracle pre-filter file. See Oracle filtering.
ignoreRulesNoStringPath to SQL Compare for Oracle ignore rules filter file. See Oracle filtering.
optionsFileNoStringPath to ComparisonOptions.xml file, specifying SQL Compare for Oracle comparison options. See Oracle comparison options.
editionNoString

Edition to use for edition-based-redefinition. The following RunOnceCommand will be set when running comparisons:

alter session set edition = "{edition}"

Comparison (SQL Server)

NameRequired?TypeDescription
filterNoStringPath to SQL Compare filter file, See SQL Server filtering.
optionsNoObjectMap of SQL Compare comparison options and their values. See SQL Server comparison options.

Code Analysis

NameRequired?TypeDescription
settingsYesStringPath to Code Analysis for Oracle settings file

Connection Provider Format

Most connection providers have type inline, and specify a JDBC URL with optional username and password.

Wherever different connection information is needed, a different object type must be specified.

See the examples below:

"connectionProvider": {
    "type": "inline",
    "url": "jdbc:oracle:thin:@//localhost:1521/dev",
    "username": "developmentUsername",
    "password": "developmentPassword"
}
"connectionProvider": {
    "type": "inline",
    "url": "jdbc:sqlserver://MY-SERVER;instanceName=MY-INSTANCE;databaseName=dev;integratedSecurity=true"
}
"connectionProvider": {
    "type": "azureActiveDirectoryInteractive",
    "url": "jdbc:sqlserver://myserver.database.windows.net;databaseName=dev;authentication=ActiveDirectoryInteractive",
    "tenantId": "555edc21-daac-4415-826c-ce65e860b37d",
    "clientId": "dabc8f7f-1611-4468-afa5-ba134d0fe780",
    "redirectUri": "http://localhost"
}

For more information see database connections.

Example project file

{
    "version": "1.0",
    "name": "my project",
    "id": "a983562b-64f6-4b0e-9c88-620d3bb45699",
    "databaseType": "oracle",
    "schemas": [
        "MY_SCHEMA"
    ],
    "development": {
        "scriptsFolder": "./schema-model"
    },
    "deployment": {
        "flywayConfFiles": [
            "./flyway.conf"
        ]
    },
    "capabilities": {
        "comparison": {
            "filter": "./Filter.scpf",
            "ignoreRules": "./IgnoreRules.scpf",
            "optionsFile": "./schema-model/ComparisonOptions.xml"
        },
        "codeAnalysis": {
            "settings": "./cao.settings.xml"
        }
    }
}

Didn't find what you were looking for?