Class GeneratedColumnChange
- java.lang.Object
-
- liquibase.AbstractExtensibleObject
-
- liquibase.plugin.AbstractPlugin
-
- liquibase.change.AbstractChange
-
- org.keycloak.models.map.storage.jpa.liquibase.extension.GeneratedColumnChange
-
- All Implemented Interfaces:
Cloneable
,liquibase.change.Change
,liquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
,liquibase.ExtensibleObject
,liquibase.plugin.Plugin
,liquibase.serializer.LiquibaseSerializable
public class GeneratedColumnChange extends liquibase.change.AbstractChange implements liquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
Extension used to add generated column to the table. Value is either generated from a property of a JSON file stored in one of the table's columns or from hash value of existing column. Example configuration in the changelog:<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> <changeSet author="keycloak" id="some_id"> ... <ext:addGeneratedColumn tableName="test"> <ext:column name="new_column" type="VARCHAR(36)" jsonColumn="metadata" jsonProperty="alias"/> </ext:addGeneratedColumn> </changeSet>
The above configuration is adding a new column, namednew_column
, whose values are generated from thealias
property of the JSON file stored in columnmetadata
. If, for example, a particular entry in the table contains the JSON{"name":"duke","alias":"jduke"}
in columnmetadata
, the value generated for the new column will bejduke
. The configuration below adds new generated column namednew_column
with value being a hash of a columncolumn
. For more information about the type seeKeycloakHashDataType
.<changeSet author="keycloak" id="some_id"> ... <ext:addGeneratedColumn tableName="test"> <ext:column name="new_column" type="kc_hash" hashOf="column"/> </ext:addGeneratedColumn> </changeSet>
- Author:
- Stefan Guilhen
-
-
Constructor Summary
Constructors Constructor Description GeneratedColumnChange()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addColumn(AddGeneratedColumnConfig column)
liquibase.change.ChangeStatus
checkStatus(liquibase.database.Database database)
protected liquibase.change.Change[]
createInverses()
liquibase.statement.SqlStatement[]
generateStatements(liquibase.database.Database database)
String
getCatalogName()
List<AddGeneratedColumnConfig>
getColumns()
String
getConfirmationMessage()
String
getSchemaName()
String
getSerializedObjectNamespace()
String
getTableName()
void
setCatalogName(String catalogName)
void
setColumns(List<AddGeneratedColumnConfig> columns)
void
setSchemaName(String schemaName)
void
setTableName(String tableName)
liquibase.exception.ValidationErrors
validate(liquibase.database.Database database)
-
Methods inherited from class liquibase.change.AbstractChange
createChangeMetaData, createChangeParameterMetadata, createDescriptionMetaData, createEmptyColumnConfig, createExampleValueMetaData, createMustEqualExistingMetaData, createRequiredDatabasesMetaData, createSerializationTypeMetaData, createSinceMetaData, createSupportedDatabasesMetaData, customLoadLogic, finishInitialization, generateCheckSum, generateRollbackStatements, generateRollbackStatementsVolatile, generateStatementsVolatile, getAffectedDatabaseObjects, getChangeSet, getDescription, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, isInvalidProperty, load, serialize, serializeValue, setChangeSet, setResourceAccessor, supports, supportsRollback, toString, warn
-
Methods inherited from class liquibase.AbstractExtensibleObject
clone, describe, equals, get, get, get, getAttributes, getFieldValue, getObjectMetaData, getValuePath, has, hashCode, set
-
-
-
-
Method Detail
-
getCatalogName
public String getCatalogName()
-
setCatalogName
public void setCatalogName(String catalogName)
-
getSchemaName
public String getSchemaName()
-
setSchemaName
public void setSchemaName(String schemaName)
-
getTableName
public String getTableName()
-
setTableName
public void setTableName(String tableName)
-
addColumn
public void addColumn(AddGeneratedColumnConfig column)
- Specified by:
addColumn
in interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
getColumns
public List<AddGeneratedColumnConfig> getColumns()
- Specified by:
getColumns
in interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
setColumns
public void setColumns(List<AddGeneratedColumnConfig> columns)
- Specified by:
setColumns
in interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
generateStatements
public liquibase.statement.SqlStatement[] generateStatements(liquibase.database.Database database)
- Specified by:
generateStatements
in interfaceliquibase.change.Change
-
createInverses
protected liquibase.change.Change[] createInverses()
- Overrides:
createInverses
in classliquibase.change.AbstractChange
-
checkStatus
public liquibase.change.ChangeStatus checkStatus(liquibase.database.Database database)
- Specified by:
checkStatus
in interfaceliquibase.change.Change
- Overrides:
checkStatus
in classliquibase.change.AbstractChange
-
getConfirmationMessage
public String getConfirmationMessage()
- Specified by:
getConfirmationMessage
in interfaceliquibase.change.Change
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
- Specified by:
getSerializedObjectNamespace
in interfaceliquibase.serializer.LiquibaseSerializable
- Overrides:
getSerializedObjectNamespace
in classliquibase.change.AbstractChange
-
validate
public liquibase.exception.ValidationErrors validate(liquibase.database.Database database)
- Specified by:
validate
in interfaceliquibase.change.Change
- Overrides:
validate
in classliquibase.change.AbstractChange
-
-