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" } } }