Class CreateJsonIndexChange
- java.lang.Object
-
- liquibase.AbstractExtensibleObject
-
- liquibase.plugin.AbstractPlugin
-
- liquibase.change.AbstractChange
-
- org.keycloak.models.map.storage.jpa.liquibase.extension.CreateJsonIndexChange
-
- All Implemented Interfaces:
Cloneable,liquibase.change.Change,liquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>,liquibase.ExtensibleObject,liquibase.plugin.Plugin,liquibase.serializer.LiquibaseSerializable
public class CreateJsonIndexChange extends liquibase.change.AbstractChange implements liquibase.change.ChangeWithColumns<AddGeneratedColumnConfig>
Extension used to create an index for properties of JSON files stored in the database. Some databases, likePostgres, have native support for these indexes while other databases may require different constructs to achieve this (like creation of a separate column based on the JSON property and subsequent indexing of that 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:createJsonIndex tableName="test" indexName="some_index_name"> <ext:column jsonColumn="metadata" jsonProperty="name"/> </ext:createJsonIndex> </changeSet>The above configuration is creating an inverted (GIN) index for thenameproperty of JSON files stored in columnmetadatain tabletest. ThejsonPropertyis optional - when it is absent the index will be created for the whole JSON.- Author:
- Stefan Guilhen
-
-
Constructor Summary
Constructors Constructor Description CreateJsonIndexChange()
-
Method Summary
-
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, getSerializedObjectName, isInvalidProperty, load, serialize, serializeValue, setChangeSet, setResourceAccessor, supports, supportsRollback, toString, validate, 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)
-
getIndexName
public String getIndexName()
-
setIndexName
public void setIndexName(String indexName)
-
getTablespace
public String getTablespace()
-
setTablespace
public void setTablespace(String tablespace)
-
isUnique
public Boolean isUnique()
-
setUnique
public void setUnique(Boolean isUnique)
-
getAssociatedWith
public String getAssociatedWith()
-
setAssociatedWith
public void setAssociatedWith(String associatedWith)
-
getClustered
public Boolean getClustered()
-
setClustered
public void setClustered(Boolean clustered)
-
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>
-
getConfirmationMessage
public String getConfirmationMessage()
- Specified by:
getConfirmationMessagein interfaceliquibase.change.Change
-
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
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
- Specified by:
getSerializedObjectNamespacein interfaceliquibase.serializer.LiquibaseSerializable- Overrides:
getSerializedObjectNamespacein classliquibase.change.AbstractChange
-
-