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<JsonEnabledColumnConfig>,liquibase.ExtensibleObject,liquibase.plugin.Plugin,liquibase.serializer.LiquibaseSerializable
public class GeneratedColumnChange extends liquibase.change.AbstractChange implements liquibase.change.ChangeWithColumns<JsonEnabledColumnConfig>
Extension used to a column whose values are generated from a property of a JSON file stored in one of the table's columns. 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.- Author:
- Stefan Guilhen
-
-
Constructor Summary
Constructors Constructor Description GeneratedColumnChange()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddColumn(JsonEnabledColumnConfig column)liquibase.change.ChangeStatuscheckStatus(liquibase.database.Database database)protected liquibase.change.Change[]createInverses()liquibase.statement.SqlStatement[]generateStatements(liquibase.database.Database database)StringgetCatalogName()List<JsonEnabledColumnConfig>getColumns()StringgetConfirmationMessage()StringgetSchemaName()StringgetSerializedObjectNamespace()StringgetTableName()voidsetCatalogName(String catalogName)voidsetColumns(List<JsonEnabledColumnConfig> 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(JsonEnabledColumnConfig column)
- Specified by:
addColumnin interfaceliquibase.change.ChangeWithColumns<JsonEnabledColumnConfig>
-
getColumns
public List<JsonEnabledColumnConfig> getColumns()
- Specified by:
getColumnsin interfaceliquibase.change.ChangeWithColumns<JsonEnabledColumnConfig>
-
setColumns
public void setColumns(List<JsonEnabledColumnConfig> columns)
- Specified by:
setColumnsin interfaceliquibase.change.ChangeWithColumns<JsonEnabledColumnConfig>
-
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
-
-