Package liquibase.change
Interface Change
-
- All Superinterfaces:
Cloneable
,ExtensibleObject
,LiquibaseSerializable
,Plugin
- All Known Implementing Classes:
AbstractChange
,AbstractModifyDataChange
,AbstractSQLChange
,AbstractTableChange
,AddAutoIncrementChange
,AddColumnChange
,AddDefaultValueChange
,AddForeignKeyConstraintChange
,AddLookupTableChange
,AddNotNullConstraintChange
,AddPrimaryKeyChange
,AddUniqueConstraintChange
,AlterSequenceChange
,CreateIndexChange
,CreateProcedureChange
,CreateSequenceChange
,CreateTableChange
,CreateViewChange
,CustomChangeWrapper
,DeleteDataChange
,DropAllForeignKeyConstraintsChange
,DropColumnChange
,DropDefaultValueChange
,DropForeignKeyConstraintChange
,DropIndexChange
,DropNotNullConstraintChange
,DropPrimaryKeyChange
,DropProcedureChange
,DropSequenceChange
,DropTableChange
,DropUniqueConstraintChange
,DropViewChange
,EmptyChange
,ExecuteShellCommandChange
,InsertDataChange
,LoadDataChange
,LoadUpdateDataChange
,MergeColumnChange
,ModifyDataTypeChange
,OutputChange
,RawSQLChange
,RenameColumnChange
,RenameSequenceChange
,RenameTableChange
,RenameViewChange
,SetColumnRemarksChange
,SetTableRemarksChange
,SQLFileChange
,StopChange
,TagDatabaseChange
,UpdateDataChange
public interface Change extends LiquibaseSerializable, Plugin, ExtensibleObject
Interface all changes (refactorings) implement.Instances of these objects are normally created via the
ChangeFactory
byChangeLogParser
implementations.- See Also:
ChangeFactory
,Database
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
LiquibaseSerializable.SerializationType
-
-
Field Summary
Fields Modifier and Type Field Description static Change[]
EMPTY_CHANGE
Represent an empty array ofChange
static String
SHOULD_EXECUTE
-
Fields inherited from interface liquibase.serializer.LiquibaseSerializable
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACE
-
Fields inherited from interface liquibase.plugin.Plugin
PRIORITY_DATABASE, PRIORITY_DEFAULT, PRIORITY_NOT_APPLICABLE, PRIORITY_SPECIALIZED
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description ChangeStatus
checkStatus(Database database)
Validate that this change executed successfully against the given database.ChangeMetaData
createChangeMetaData()
void
finishInitialization()
This method will be called by the changelog parsing process after all of the properties have been set to allow the task to do any additional initialization logic.CheckSum
generateCheckSum()
Calculates the checksum of this Change based on the current configuration.SqlStatement[]
generateRollbackStatements(Database database)
Generates theSqlStatement
objects that would roll back the change.boolean
generateRollbackStatementsVolatile(Database database)
Returns true if this change reads data from the database or other sources that would change during the course of an update in thegenerateRollbackStatements(Database)
method.SqlStatement[]
generateStatements(Database database)
Generates theSqlStatement
objects required to run the change for the given database.boolean
generateStatementsVolatile(Database database)
Returns true if this change reads data from the database or other sources that would change during the course of an update in thegenerateStatements(Database)
method.Set<DatabaseObject>
getAffectedDatabaseObjects(Database database)
Returns exampleDatabaseObject
instances describing the objects affected by this change.ChangeSet
getChangeSet()
Returns the changeSet this Change is part of.String
getConfirmationMessage()
Confirmation message to be displayed after the change is executed.String
getDescription()
Short, scannable description for the DATABASECHANGELOG.DESCRIPTION columnvoid
modify(ChangeVisitor changeVisitor)
void
setChangeSet(ChangeSet changeSet)
Sets the changeSet this Change is a part of.void
setResourceAccessor(ResourceAccessor resourceAccessor)
Deprecated.this is now set viaScope
boolean
supports(Database database)
Return true if this Change object supports the passed database.boolean
supportsRollback(Database database)
Returns true if this can change be rolled back for the given database.ValidationErrors
validate(Database database)
Generate errors based on the configured Change instance.Warnings
warn(Database database)
Generates warnings based on the configured Change instance.-
Methods inherited from interface liquibase.ExtensibleObject
clone, describe, get, get, getAttributes, getObjectMetaData, getValuePath, has, set
-
Methods inherited from interface liquibase.serializer.LiquibaseSerializable
getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, getSerializedObjectNamespace, load, serialize
-
-
-
-
Field Detail
-
SHOULD_EXECUTE
static final String SHOULD_EXECUTE
- See Also:
- Constant Field Values
-
-
Method Detail
-
finishInitialization
void finishInitialization() throws SetupException
This method will be called by the changelog parsing process after all of the properties have been set to allow the task to do any additional initialization logic.- Throws:
SetupException
-
createChangeMetaData
ChangeMetaData createChangeMetaData()
-
getChangeSet
ChangeSet getChangeSet()
Returns the changeSet this Change is part of. Will return null if this instance was not constructed as part of a changelog file.
-
setChangeSet
void setChangeSet(ChangeSet changeSet)
Sets the changeSet this Change is a part of. Called automatically by Liquibase during the changelog parsing process.
-
setResourceAccessor
void setResourceAccessor(ResourceAccessor resourceAccessor)
Deprecated.this is now set viaScope
Sets theResourceAccessor
that should be used for any file and/or resource loading needed by this Change. Called automatically by Liquibase during the changelog parsing process.
-
supports
boolean supports(Database database)
Return true if this Change object supports the passed database. Used by the ChangeLog parsing process.
-
warn
Warnings warn(Database database)
Generates warnings based on the configured Change instance. Warnings do not stop changelog execution, but are passed along to the end user for reference. Can return null or an empty Warnings object when there are no warnings.
-
validate
ValidationErrors validate(Database database)
Generate errors based on the configured Change instance. If there are any validation errors, changelog processing will normally not occur. Can return null or empty ValidationErrors object when there are no errors.
-
getAffectedDatabaseObjects
Set<DatabaseObject> getAffectedDatabaseObjects(Database database)
Returns exampleDatabaseObject
instances describing the objects affected by this change. This method is not called during the normal execution of a changelog, but can be used as metadata for documentation or other integrations.
-
generateCheckSum
CheckSum generateCheckSum()
Calculates the checksum of this Change based on the current configuration. The checksum should take into account all settings that would impact what actually happens to the database and NOT include any settings that do not impact the actual execution of the change.
-
getConfirmationMessage
String getConfirmationMessage()
Confirmation message to be displayed after the change is executed. Should include relevant configuration settings to make it as helpful as possible. This method may be called outside the changelog execution process, such as in documentation generation.
-
generateStatements
SqlStatement[] generateStatements(Database database)
Generates theSqlStatement
objects required to run the change for the given database. NOTE: This method may be called multiple times throughout the changelog execution process and may be called in documentation generation and other integration points as well. If this method reads from the current database state or uses any other logic that will be affected by whether previous changeSets have ran or not, you must return true fromgenerateStatementsVolatile(liquibase.database.Database)
.
-
generateStatementsVolatile
boolean generateStatementsVolatile(Database database)
Returns true if this change reads data from the database or other sources that would change during the course of an update in thegenerateStatements(Database)
method. If true, this change cannot be used in an updateSql-style commands because Liquibase cannot know theSqlStatement
objects until all changeSets prior have been actually executed.
-
supportsRollback
boolean supportsRollback(Database database)
Returns true if this can change be rolled back for the given database.
-
generateRollbackStatements
SqlStatement[] generateRollbackStatements(Database database) throws RollbackImpossibleException
Generates theSqlStatement
objects that would roll back the change. NOTE: This method may be called multiple times throughout the changelog execution process and may be called in documentation generation and other integration points as well. If this method reads from the current database state or uses any other logic that will be affected by whether previous changeSets have been rolled back or not, you must return true fromgenerateRollbackStatementsVolatile(liquibase.database.Database)
.- Throws:
RollbackImpossibleException
- if rollback is not supported for this change
-
generateRollbackStatementsVolatile
boolean generateRollbackStatementsVolatile(Database database)
Returns true if this change reads data from the database or other sources that would change during the course of an update in thegenerateRollbackStatements(Database)
method. If true, this change cannot be used in an updateSql-style commands because Liquibase cannot know theSqlStatement
objects until all changeSets prior have been actually executed.
-
checkStatus
ChangeStatus checkStatus(Database database)
Validate that this change executed successfully against the given database. This will check that the update completed at a high level plus check details of the change. For example, a change to add a column will check that the column exists plus data type, default values, etc.
-
getDescription
String getDescription()
Short, scannable description for the DATABASECHANGELOG.DESCRIPTION column
-
modify
void modify(ChangeVisitor changeVisitor) throws ParsedNodeException
- Parameters:
changeVisitor
-- Throws:
ParsedNodeException
- if there is an error processing ChangeVisitor
-
-