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
,ExtensibleObject
,Plugin
,LiquibaseSerializable
public class CreateProcedureChange extends AbstractChange implements DbmsTargetedChange
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
LiquibaseSerializable.SerializationType
-
-
Field Summary
-
Fields inherited from class liquibase.change.AbstractChange
NODENAME_COLUMN
-
Fields inherited from interface liquibase.change.Change
EMPTY_CHANGE, 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
-
-
Constructor Summary
Constructors Constructor Description CreateProcedureChange()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ChangeStatus
checkStatus(Database database)
Validate that this change executed successfully against the given database.protected Map<String,Object>
createExampleValueMetaData(String parameterName, DatabaseChangeProperty changePropertyAnnotation)
Create theChangeParameterMetaData
"example" value.CheckSum
generateCheckSum()
Calculates the checksum based on the contained SQL.protected CheckSum
generateCheckSumLatest(String sqlText)
boolean
generateRollbackStatementsVolatile(Database database)
Implementation delegates logic to theSqlGenerator.generateRollbackStatementsIsVolatile(Database)
method on theSqlStatement
objects 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)
SqlStatement[]
generateStatements(Database database)
Generates theSqlStatement
objects required to run the change for the given database.boolean
generateStatementsVolatile(Database database)
Implementation delegates logic to theSqlGenerator.generateStatementsIsVolatile(Database)
method on theSqlStatement
objects returned byChange.generateStatements(liquibase.database.Database)
.String
getCatalogName()
String
getComments()
String
getConfirmationMessage()
Confirmation message to be displayed after the change is executed.String
getDbms()
String
getEncoding()
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.String
getPath()
String
getProcedureBody()
String
getProcedureName()
String
getProcedureText()
Boolean
getReplaceIfExists()
String
getSchemaName()
String
getSerializedObjectNamespace()
Boolean
isRelativeToChangelogFile()
InputStream
openSqlStream()
void
setCatalogName(String catalogName)
void
setComments(String comments)
void
setDbms(String dbms)
void
setEncoding(String encoding)
void
setPath(String path)
void
setProcedureBody(String procedureText)
Deprecated.Use setProcedureText() insteadvoid
setProcedureName(String procedureName)
void
setProcedureText(String procedureText)
void
setRelativeToChangelogFile(Boolean relativeToChangelogFile)
void
setReplaceIfExists(Boolean replaceIfExists)
void
setSchemaName(String schemaName)
ValidationErrors
validate(Database database)
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 theSqlStatement
objects returned byChange.generateStatements(liquibase.database.Database)
.-
Methods inherited from class liquibase.change.AbstractChange
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, warn
-
Methods inherited from class liquibase.AbstractExtensibleObject
clone, describe, get, get, get, getAttributes, getFieldValue, getObjectMetaData, getValuePath, has, set
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface liquibase.ExtensibleObject
clone, describe, get, get, getAttributes, getObjectMetaData, getValuePath, has, set
-
-
-
-
Method Detail
-
generateStatementsVolatile
public boolean generateStatementsVolatile(Database database)
Description copied from class:AbstractChange
Implementation delegates logic to theSqlGenerator.generateStatementsIsVolatile(Database)
method on theSqlStatement
objects returned byChange.generateStatements(liquibase.database.Database)
. If zero or null SqlStatements are returned by generateStatements then this method returns false.- Specified by:
generateStatementsVolatile
in interfaceChange
- Overrides:
generateStatementsVolatile
in classAbstractChange
-
generateRollbackStatementsVolatile
public boolean generateRollbackStatementsVolatile(Database database)
Description copied from class:AbstractChange
Implementation delegates logic to theSqlGenerator.generateRollbackStatementsIsVolatile(Database)
method on theSqlStatement
objects returned byChange.generateStatements(liquibase.database.Database)
If no or null SqlStatements are returned by generateRollbackStatements then this method returns false.- Specified by:
generateRollbackStatementsVolatile
in interfaceChange
- Overrides:
generateRollbackStatementsVolatile
in classAbstractChange
-
getCatalogName
public String getCatalogName()
-
setCatalogName
public void setCatalogName(String catalogName)
-
getSchemaName
public String getSchemaName()
-
setSchemaName
public void setSchemaName(String schemaName)
-
getProcedureName
public String getProcedureName()
-
setProcedureName
public void setProcedureName(String procedureName)
-
getEncoding
public String getEncoding()
-
setEncoding
public void setEncoding(String encoding)
-
getPath
public String getPath()
-
setPath
public void setPath(String path)
-
isRelativeToChangelogFile
public Boolean isRelativeToChangelogFile()
-
setRelativeToChangelogFile
public void setRelativeToChangelogFile(Boolean relativeToChangelogFile)
-
getProcedureBody
public String getProcedureBody()
-
setProcedureBody
@Deprecated public void setProcedureBody(String procedureText)
Deprecated.Use setProcedureText() instead
-
getProcedureText
public String getProcedureText()
-
setProcedureText
public void setProcedureText(String procedureText)
-
getDbms
public String getDbms()
- Specified by:
getDbms
in 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
public void setDbms(String dbms)
- Specified by:
setDbms
in interfaceDbmsTargetedChange
-
getComments
public String getComments()
-
setComments
public void setComments(String comments)
-
getReplaceIfExists
public Boolean getReplaceIfExists()
-
setReplaceIfExists
public void setReplaceIfExists(Boolean replaceIfExists)
-
validate
public ValidationErrors validate(Database database)
Description copied from class:AbstractChange
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 theSqlStatement
objects 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:
validate
in interfaceChange
- Overrides:
validate
in classAbstractChange
-
openSqlStream
public InputStream openSqlStream() throws IOException
- Throws:
IOException
-
generateCheckSum
public CheckSum generateCheckSum()
Calculates the checksum based on the contained SQL.- Specified by:
generateCheckSum
in interfaceChange
- Overrides:
generateCheckSum
in classAbstractChange
- See Also:
Change.generateCheckSum()
-
getExcludedFieldFilters
public 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. 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:
getExcludedFieldFilters
in classAbstractChange
-
generateStatements
public SqlStatement[] generateStatements(Database database)
Description copied from interface:Change
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 fromChange.generateStatementsVolatile(liquibase.database.Database)
.- Specified by:
generateStatements
in interfaceChange
-
generateStatements
protected SqlStatement[] generateStatements(String logicText, String endDelimiter, Database database)
-
checkStatus
public ChangeStatus checkStatus(Database database)
Description copied from interface:Change
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.- Specified by:
checkStatus
in interfaceChange
- Overrides:
checkStatus
in classAbstractChange
-
getConfirmationMessage
public String getConfirmationMessage()
Description copied from interface:Change
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.- Specified by:
getConfirmationMessage
in interfaceChange
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
- Specified by:
getSerializedObjectNamespace
in interfaceLiquibaseSerializable
- Overrides:
getSerializedObjectNamespace
in classAbstractChange
-
createExampleValueMetaData
protected Map<String,Object> createExampleValueMetaData(String parameterName, DatabaseChangeProperty changePropertyAnnotation)
Description copied from class:AbstractChange
Create 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:
createExampleValueMetaData
in classAbstractChange
-
-