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 thealiasproperty 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_columnwith 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 voidaddColumn(AddGeneratedColumnConfig column)liquibase.change.ChangeStatuscheckStatus(liquibase.database.Database database)protected liquibase.change.Change[]createInverses()liquibase.statement.SqlStatement[]generateStatements(liquibase.database.Database database)StringgetCatalogName()List<AddGeneratedColumnConfig>getColumns()StringgetConfirmationMessage()StringgetSchemaName()StringgetSerializedObjectNamespace()StringgetTableName()voidsetCatalogName(String catalogName)voidsetColumns(List<AddGeneratedColumnConfig> columns)voidsetSchemaName(String schemaName)voidsetTableName(String tableName)liquibase.exception.ValidationErrorsvalidate(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:
addColumnin interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
getColumns
public List<AddGeneratedColumnConfig> getColumns()
- Specified by:
getColumnsin interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
setColumns
public void setColumns(List<AddGeneratedColumnConfig> columns)
- Specified by:
setColumnsin interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
generateStatements
public liquibase.statement.SqlStatement[] generateStatements(liquibase.database.Database database)
- Specified by:
generateStatementsin interfaceliquibase.change.Change
-
createInverses
protected liquibase.change.Change[] createInverses()
- Overrides:
createInversesin classliquibase.change.AbstractChange
-
checkStatus
public liquibase.change.ChangeStatus checkStatus(liquibase.database.Database database)
- Specified by:
checkStatusin interfaceliquibase.change.Change- Overrides:
checkStatusin classliquibase.change.AbstractChange
-
getConfirmationMessage
public String getConfirmationMessage()
- Specified by:
getConfirmationMessagein interfaceliquibase.change.Change
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
- Specified by:
getSerializedObjectNamespacein interfaceliquibase.serializer.LiquibaseSerializable- Overrides:
getSerializedObjectNamespacein classliquibase.change.AbstractChange
-
validate
public liquibase.exception.ValidationErrors validate(liquibase.database.Database database)
- Specified by:
validatein interfaceliquibase.change.Change- Overrides:
validatein classliquibase.change.AbstractChange
-
-