Project settings
Published 29 July 2021
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
| Name | Required? | Type | Description |
|---|---|---|---|
| version | Yes | String | The version of the settings file. This should not be altered. |
| name | Yes | String | The display name of the project. |
| id | Yes | String | A unique identifier for the project. This should not be altered. |
| databaseType | Yes | String | The type of database being managed by this project. |
| schemas | Yes | String Array | The schemas to track. See database connections for more information. |
| developmentDatabase | No | Object | The connection information for the development database. This is usually stored in the user settings file. |
| development | No | Object | Settings relating to the capturing of database changes in a schema model folder. |
| deployment | No | Object | Settings relating to migration generation and deployment. |
| capabilities | No | Object | Settings relating to database-type-specific capabilities |
Development Database
| Name | Required? | Type | Description |
|---|---|---|---|
| connectionProvider | Yes | Object | The database connection information. See below for more information. |
Development
| Name | Required? | Type | Description |
|---|---|---|---|
| scriptsFolder | Yes | String | The location of the schema model folder. |
Deployment
| Name | Required? | Type | Description |
|---|---|---|---|
| flywayConfFiles | Yes | String Array | One or more flyway configuration files, configuring migration script deployment. |
| shadowDatabase | Yes | Object | The connection information for the shadow database. |
| repeatableMigrationTypes | No | String Array | List 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
| Name | Required? | Type | Description |
|---|---|---|---|
| schema | No* | String | When 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. |
| connectionProvider | No* | String | The database connection information. See below for more information. |
*One of schema and connectionProvider must be provided.
Capabilities
| Name | Required? | Type | Description |
|---|---|---|---|
| comparison | No | Object | Settings for comparing databases and schema models. |
| codeAnalysis | No | Object | Settings for static code analysis. |
Comparison (Oracle)
| Name | Required? | Type | Description |
|---|---|---|---|
| filter | No | String | Path to SQL Compare for Oracle pre-filter file. See Oracle filtering. |
| ignoreRules | No | String | Path to SQL Compare for Oracle ignore rules filter file. See Oracle filtering. |
| optionsFile | No | String | Path to ComparisonOptions.xml file, specifying SQL Compare for Oracle comparison options. See Oracle comparison options. |
| edition | No | String | Edition to use for edition-based-redefinition. The following RunOnceCommand will be set when running comparisons: alter session set edition = "{edition}" |
Comparison (SQL Server)
| Name | Required? | Type | Description |
|---|---|---|---|
| filter | No | String | Path to SQL Compare filter file, See SQL Server filtering. |
| options | No | Object | Map of SQL Compare comparison options and their values. See SQL Server comparison options. |
Code Analysis
| Name | Required? | Type | Description |
|---|---|---|---|
| settings | Yes | String | Path 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"
}
}
}