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 thename
property of JSON files stored in columnmetadata
in tabletest
. ThejsonProperty
is 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:
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>
-
getConfirmationMessage
public String getConfirmationMessage()
- Specified by:
getConfirmationMessage
in interfaceliquibase.change.Change
-
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
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
- Specified by:
getSerializedObjectNamespace
in interfaceliquibase.serializer.LiquibaseSerializable
- Overrides:
getSerializedObjectNamespace
in classliquibase.change.AbstractChange
-
-