Package liquibase.change.core
Class CreateProcedureChange
java.lang.Object
liquibase.AbstractExtensibleObject
liquibase.plugin.AbstractPlugin
liquibase.change.AbstractChange
liquibase.change.core.CreateProcedureChange
- All Implemented Interfaces:
Cloneable,Change,DbmsTargetedChange,ReplaceIfExists,ExtensibleObject,Plugin,LiquibaseSerializable
public class CreateProcedureChange
extends AbstractChange
implements DbmsTargetedChange, ReplaceIfExists
-
Nested Class Summary
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
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 TypeMethodDescriptioncheckStatus(Database database) Validate that this change executed successfully against the given database.createExampleValueMetaData(String parameterName, DatabaseChangeProperty changePropertyAnnotation) Create theChangeParameterMetaData"example" value.static booleandatabaseSupportsReplaceIfExists(Database database) Calculates the checksum based on the contained SQL.protected CheckSumgenerateCheckSumLatest(String sqlText) booleangenerateRollbackStatementsVolatile(Database database) Implementation delegates logic to theSqlGenerator.generateRollbackStatementsIsVolatile(Database)method on theSqlStatementobjects returned byChange.generateStatements(liquibase.database.Database)If no or null SqlStatements are returned by generateRollbackStatements then this method returns false.protected SqlStatement[]generateStatements(String logicText, String endDelimiter, Database database) generateStatements(Database database) Generates theSqlStatementobjects required to run the change for the given database.booleangenerateStatementsVolatile(Database database) Implementation delegates logic to theSqlGenerator.generateStatementsIsVolatile(Database)method on theSqlStatementobjects returned byChange.generateStatements(liquibase.database.Database).Confirmation message to be displayed after the change is executed.getDbms()String[]getExcludedFieldFilters(ChecksumVersion version) Listing SQL content fields (for example procedureText, triggerBody, etc.) we don't want to include as part of the checksum computes, because have a separate part that computes that checksum for that part doing the "normalizing" logic, so it is not impacted by the reformatting of the SQL.getPath()Deprecated.voidvoidsetProcedureBody(String procedureText) Deprecated.Use setProcedureText() insteadvoidsetReplaceIfExists(Boolean replaceIfExists) Implementation checks the ChangeParameterMetaData for declared required fields and also delegates logic to theSqlGenerator.validate(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain)method on theSqlStatementobjects returned byChange.generateStatements(liquibase.database.Database).Methods inherited from class liquibase.change.AbstractChange
createAlternateParameterNames, createChangeMetaData, createChangeParameterMetadata, createDescriptionMetaData, createEmptyColumnConfig, createInverses, createMustEqualExistingMetaData, createRequiredDatabasesMetaData, createSerializationTypeMetaData, createSinceMetaData, createSupportedDatabasesMetaData, customLoadLogic, equals, finishInitialization, generateRollbackStatements, getAffectedDatabaseObjects, getChangeSet, getDescription, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, hashCode, isInvalidProperty, load, modify, 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.change.Change
shouldRunOnOsMethods inherited from interface liquibase.ExtensibleObject
clone, describe, get, get, getAttributes, getObjectMetaData, getValuePath, has, set
-
Constructor Details
-
CreateProcedureChange
public CreateProcedureChange()
-
-
Method Details
-
generateStatementsVolatile
Description copied from class:AbstractChangeImplementation delegates logic to theSqlGenerator.generateStatementsIsVolatile(Database)method on theSqlStatementobjects returned byChange.generateStatements(liquibase.database.Database). If zero or null SqlStatements are returned by generateStatements then this method returns false.- Specified by:
generateStatementsVolatilein interfaceChange- Overrides:
generateStatementsVolatilein classAbstractChange
-
generateRollbackStatementsVolatile
Description copied from class:AbstractChangeImplementation delegates logic to theSqlGenerator.generateRollbackStatementsIsVolatile(Database)method on theSqlStatementobjects returned byChange.generateStatements(liquibase.database.Database)If no or null SqlStatements are returned by generateRollbackStatements then this method returns false.- Specified by:
generateRollbackStatementsVolatilein interfaceChange- Overrides:
generateRollbackStatementsVolatilein classAbstractChange
-
getCatalogName
-
getSchemaName
-
getProcedureName
-
getEncoding
-
getPath
-
isRelativeToChangelogFile
-
getProcedureBody
Deprecated. -
setProcedureBody
Deprecated.Use setProcedureText() instead -
getProcedureText
-
getDbms
- Specified by:
getDbmsin interfaceDbmsTargetedChange- Returns:
- A comma separated list of dbms' that this change will be run for. Will run for all dbms' if empty or null.
-
setDbms
- Specified by:
setDbmsin interfaceDbmsTargetedChange
-
getComment
-
getReplaceIfExists
-
setReplaceIfExists
- Specified by:
setReplaceIfExistsin interfaceReplaceIfExists
-
validate
Description copied from class:AbstractChangeImplementation checks the ChangeParameterMetaData for declared required fields and also delegates logic to theSqlGenerator.validate(liquibase.statement.SqlStatement, liquibase.database.Database, liquibase.sqlgenerator.SqlGeneratorChain)method on theSqlStatementobjects returned byChange.generateStatements(liquibase.database.Database). If no or null SqlStatements are returned by generateStatements then this method returns no errors. If there are no parameters than this method returns no errors- Specified by:
validatein interfaceChange- Overrides:
validatein classAbstractChange
-
openSqlStream
- Throws:
IOException
-
generateCheckSum
Calculates the checksum based on the contained SQL.- Specified by:
generateCheckSumin interfaceChange- Overrides:
generateCheckSumin classAbstractChange- See Also:
-
generateCheckSumLatest
-
getExcludedFieldFilters
Listing SQL content fields (for example procedureText, triggerBody, etc.) we don't want to include as part of the checksum computes, because have a separate part that computes that checksum for that part doing the "normalizing" logic, so it is not impacted by the reformatting of the SQL. We are also excluding fields from the checksum generation which does not have a direct impact on the DB, such as dbms, path, comments, etc. Besides it has an impact on the DB, we have decided to do not add replaceIfExists as part of this list of fields as we are already avoiding the recalculation of the checksum by listing the main content fields of the different change types.- Overrides:
getExcludedFieldFiltersin classAbstractChange
-
generateStatements
Description copied from interface:ChangeGenerates theSqlStatementobjects 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 fromChange.generateStatementsVolatile(liquibase.database.Database).- Specified by:
generateStatementsin interfaceChange
-
generateStatements
protected SqlStatement[] generateStatements(String logicText, String endDelimiter, Database database) -
checkStatus
Description copied from interface:ChangeValidate 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.- Specified by:
checkStatusin interfaceChange- Overrides:
checkStatusin classAbstractChange
-
getConfirmationMessage
Description copied from interface:ChangeConfirmation 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.- Specified by:
getConfirmationMessagein interfaceChange
-
getSerializedObjectNamespace
- Specified by:
getSerializedObjectNamespacein interfaceLiquibaseSerializable- Overrides:
getSerializedObjectNamespacein classAbstractChange
-
createExampleValueMetaData
protected Map<String,Object> createExampleValueMetaData(String parameterName, DatabaseChangeProperty changePropertyAnnotation) Description copied from class:AbstractChangeCreate theChangeParameterMetaData"example" value. Uses the value on the DatabaseChangeProperty annotation or returns null as a default. Returns map with key=database short name, value=example. Use short-name "all" as the fallback.- Overrides:
createExampleValueMetaDatain classAbstractChange
-
databaseSupportsReplaceIfExists
-