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, named new_column, whose values are generated from the alias property
of the JSON file stored in column metadata. If, for example, a particular entry in the table contains the JSON
{"name":"duke","alias":"jduke"} in column metadata, the value generated for the new column will be jduke.
The configuration below adds new generated column named new_column with value being a hash of a column column.
For more information about the type see KeycloakHashDataType.
<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
-
Nested Class Summary
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
liquibase.serializer.LiquibaseSerializable.SerializationType -
Field Summary
Fields inherited from class liquibase.change.AbstractChange
NODENAME_COLUMNFields inherited from interface liquibase.change.Change
EMPTY_CHANGE, SHOULD_EXECUTEFields inherited from interface liquibase.serializer.LiquibaseSerializable
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACEFields inherited from interface liquibase.plugin.Plugin
PRIORITY_DATABASE, PRIORITY_DEFAULT, PRIORITY_NOT_APPLICABLE, PRIORITY_SPECIALIZED -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddColumn(AddGeneratedColumnConfig column) liquibase.change.ChangeStatuscheckStatus(liquibase.database.Database database) protected liquibase.change.Change[]liquibase.statement.SqlStatement[]generateStatements(liquibase.database.Database database) 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, equals, finishInitialization, generateCheckSum, generateRollbackStatements, generateRollbackStatementsVolatile, generateStatementsVolatile, getAffectedDatabaseObjects, getChangeSet, getDescription, getExcludedFieldFilters, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, hashCode, isInvalidProperty, load, serialize, serializeValue, setChangeSet, setResourceAccessor, shouldExecuteChange, supports, supportsRollback, toString, warnMethods inherited from class liquibase.AbstractExtensibleObject
clone, describe, get, get, get, getAttributes, getFieldValue, getObjectMetaData, getValuePath, has, setMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface liquibase.ExtensibleObject
clone, describe, get, get, getAttributes, getObjectMetaData, getValuePath, has, set
-
Constructor Details
-
GeneratedColumnChange
public GeneratedColumnChange()
-
-
Method Details
-
getCatalogName
-
setCatalogName
-
getSchemaName
-
setSchemaName
-
getTableName
-
setTableName
-
addColumn
- Specified by:
addColumnin interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
getColumns
- Specified by:
getColumnsin interfaceliquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
-
setColumns
- 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
- Specified by:
getConfirmationMessagein interfaceliquibase.change.Change
-
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
-