Check for and resolve schema changes
Included in the Basic API.
Before you start a data generation job, we recommend that you check for and resolve any schema changes on the source database.
In the Tonic Structural application, you can use the Schema Changes view to review and resolve any changes.
From the API, you can:
Retrieve a list of schema changes
Resolve schema changes
Retrieve the list of schema changes
To view the list of schema changes, use GET /api/SchemaDiff.
In the results, each schema change uses the following format:
Where:
schemaName
The name of the affected schema.
tableName
The name of the affected table.
For MongoDB, this is the name of the affected collection.
issueCode
The type of schema change. Possible values are:
new_column
- The column was added to the table.changed_column_type
- The column data type changed. Data type changes are only listed if the change introduces a conflict in the workspace configuration.new_table
- The table was added to the schema.missing_column
- The column was removed from the table. Removed columns are only listed if the removal introduces a conflict in the workspace configuration.missing_table
- The table was removed from the schema. Removed tables are only listed if the removal introduces a conflict in the workspace configuration.changed_nullability
- The column changed whether it can be NULL. Nullability changes are only listed if the change introduces a conflict in the workspace configuration.new_foreign_key
- The column had an assigned generator, but is now a foreign key. Foreign keys must inherit the generator from the primary key.new_collection
- For MongoDB only. The collection was added to the source database.missing_collection
- For MongoDB only. The collection was removed from the source database. Removed collections are only listed if the change introduces a conflict in the workspace configuration.new_path_type
- For MongoDB only. The column has a new path type.missing_path_type
- For MongoDB only. The column path type was removed.
columnName
The name of the affected column. For new or removed tables or collections, there is no column name.
oldDataType
For columns that change type, the previous data type.
newDataType
For a new column, the data type of the column. For columns that change type, the new data type.
Resolve selected schema changes
You can use the API to resolve specified schema changes.
When you use the API to resolve schema changes:
For non-conflicting schema changes (new tables and columns), Structural does not make any changes to the configuration.
To resolve a single schema change, use POST /api/SchemaDiff/resolve. The request body provides the details for a single schema change.
To resolve multiple changes, use POST /api/SchemaDiff/resolve_multiple. The request body provides the details for each schema change.
In the request body, each schema change has the following format:
Where:
workspaceId
The identifier of the workspace.
issueCode
The type of issue.
schemaName
The name of the affected schema.
tableName
The name of the affected table.
columnName
The name of the affected column. Only provided for column-specific issues.
dataType
For MongoDB only. The data type for the affected column.
Resolving all schema changes for a workspace
To resolve all schema changes for a workspace, use:
POST /api/SchemaDiff/{workspaceId}/resolve_all
The resolutionOption
parameter identifies the types of schema changes to resolve. The options are:
All
- Indicates to resolve all of the schema changes.Actions
- Indicates to only resolve conflicting schema changes.Notifications
- Indicates to only resolve non-conflicting schema changes.
Last updated