diff --git a/5.0.0/api/allclasses-frame.html b/5.0.0/api/allclasses-frame.html new file mode 100644 index 00000000..acb08022 --- /dev/null +++ b/5.0.0/api/allclasses-frame.html @@ -0,0 +1,63 @@ + + + + +All Classes + + + + + + + +

All Classes

+
+ +
+ + diff --git a/5.0.0/api/deprecated-list.html b/5.0.0/api/deprecated-list.html new file mode 100644 index 00000000..6d06f5f2 --- /dev/null +++ b/5.0.0/api/deprecated-list.html @@ -0,0 +1,106 @@ + + + + + + + + Deprecated API (database-migration 5.0.0 API) + + + + + + + + + + +
+ + + + + +
+ + +
+

Deprecated API

+

Contents

+ +
+
+ + +
+ +
+ + + + + +
+ + + + + diff --git a/5.0.0/api/groovy.ico b/5.0.0/api/groovy.ico new file mode 100644 index 00000000..e69de29b diff --git a/5.0.0/api/help-doc.html b/5.0.0/api/help-doc.html new file mode 100644 index 00000000..75082089 --- /dev/null +++ b/5.0.0/api/help-doc.html @@ -0,0 +1,196 @@ + + + + + + + + + API Help (database-migration 5.0.0 API) + + + + + + + + + +
+ + + + + +
+ + + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+ + This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + +
+ + + + diff --git a/5.0.0/api/index-all.html b/5.0.0/api/index-all.html new file mode 100644 index 00000000..088f1d5b --- /dev/null +++ b/5.0.0/api/index-all.html @@ -0,0 +1,833 @@ + + + + + + + + Index (database-migration 5.0.0 API) + + + + + + + + +
+ + + + + +
+ + +
+ +A + +B + +C + +D + +E + +F + +G + +H + +I + +J + +K + +L + +M + +N + +O + +P + +Q + +R + +S + +T + +U + +V + +W + +X + +Y + +Z + +_ + + + + +

A

+
+ +
allStatements - Property in GroovyChange +
+
append(liquibase.changelog.ChangeSet, java.io.File) - Method in GroovyChangeLogSerializer +
+
appendAttrs(java.lang.StringBuilder, groovy.util.Node, java.lang.String) - Method in ChangelogXml2Groovy +
+
appendToChangeLog(java.io.File, java.io.File) - Method in DatabaseMigrationCommand +
+
appendWithIndent(int, java.lang.StringBuilder, java.lang.String) - Method in ChangelogXml2Groovy +
+
applicationContext - Property in ApplicationContextDatabaseMigrationCommand +
+
applicationContext - Property in DatabaseChangeLogBuilder +
+
applicationContext - Property in DatabaseMigrationTransactionManager +
+
applicationContext - Property in GroovyChangeLogParser +
+
ApplicationContextDatabaseMigrationCommand - Trait in org.grails.plugins.databasemigration.command +
+
author - Property in DatabaseMigrationGrailsPlugin +
+
authorEmail - Property in DatabaseMigrationGrailsPlugin +
+
+ + + +

B

+
+ +
+ + + +

C

+
+ +
changeClosure - Property in GroovyChange +
+
changeClosureCalled - Property in GroovyChange +
+
changeLog - Property in GroovyPrecondition +
+
ChangelogXml2Groovy - Class in org.grails.plugins.databasemigration.liquibase +
Generates a Groovy DSL version of a Liquibase XML changelog.
+
ChangelogXml2Groovy() - Constructor in ChangelogXml2Groovy +
+
changeSet - Property in GroovyPrecondition +
+
check(liquibase.database.Database, liquibase.changelog.DatabaseChangeLog, liquibase.changelog.ChangeSet, liquibase.changelog.visitor.ChangeExecListener) - Method in GroovyPrecondition +
+
checkClosure - Property in GroovyPrecondition +
+
checksumString - Property in GroovyChange +
+
closeResources(java.sql.Connection) - Method in GroovyChange.1 +
+
closeResources(java.sql.Connection) - Method in GroovyPrecondition.1 +
+
COMMAND_NAME - Field in GroovyDiffToChangeLogCommandStep +
+
COMMAND_NAME - Field in GroovyGenerateChangeLogCommandStep +
+
commandLine - Property in DatabaseMigrationCommand +
+
config - Property in GroovyChangeLogParser +
+
CONFIG_MAIN_PREFIX - Property in DatabaseMigrationGrailsPlugin +
+
config - Property in ScriptDatabaseMigrationCommand +
+
configureDatabase(liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
configureLiquibase() - Method in ApplicationContextDatabaseMigrationCommand +
+
configureLiquibase() - Method in ScriptDatabaseMigrationCommand +
+
configureSources(org.hibernate.boot.MetadataSources) - Method in GormDatabase +
+
confirm(java.lang.String) - Method in GroovyChange +
Called by the change or rollback closure.
+
confirmationMessage - Property in GroovyChange +
+
connection - Property in GormDatabase +
+
contexts - Property in DatabaseMigrationCommand +
+
convert(java.lang.String) - Method in ChangelogXml2Groovy +
Convert a Liquibase XML changelog to Groovy DSL format.
+
convertNode(groovy.util.Node, java.lang.StringBuilder, int) - Method in ChangelogXml2Groovy +
+
createDatabase(java.lang.String, java.lang.String, Map<String, String>) - Method in DatabaseMigrationCommand +
+
createDatabase(java.sql.Connection, liquibase.resource.ResourceAccessor) - Method in GrailsLiquibase +
+
createDatabaseSnapshot(java.lang.String) - Method in GroovyPrecondition +
Called from the check closure.
+
createLiquibase(java.sql.Connection) - Method in GrailsLiquibase +
+
createNode(java.lang.Object, java.util.Map, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
createResourceAccessor() - Method in DatabaseMigrationCommand +
+
ctx - Property in GroovyChange +
+
ctx - Property in GroovyPrecondition +
+
+ + + +

D

+
+ +
DATA_SOURCE_NAME_KEY - Property in PluginConstants +
+
database - Property in GroovyChange +
+
database - Property in GroovyPrecondition +
+
database - Field in NoopVisitor +
+
DatabaseChangeLogBuilder - Class in org.grails.plugins.databasemigration.liquibase +
+
DatabaseChangeLogBuilder() - Constructor in DatabaseChangeLogBuilder +
+
databaseChangeLogLockTableName - Property in GrailsLiquibase +
+
databaseChangeLogTableName - Property in GrailsLiquibase +
+
DatabaseMigrationCommand - Trait in org.grails.plugins.databasemigration.command +
+
DatabaseMigrationException - Class in org.grails.plugins.databasemigration +
+
DatabaseMigrationException() - Constructor in DatabaseMigrationException +
+
DatabaseMigrationGrailsPlugin - Class in org.grails.plugins.databasemigration +
+
DatabaseMigrationGrailsPlugin() - Constructor in DatabaseMigrationGrailsPlugin +
+
DatabaseMigrationTransactionManager - Class in org.grails.plugins.databasemigration +
Created by Jim on 7/15/2016.
+
DatabaseMigrationTransactionManager(org.springframework.context.ApplicationContext, java.lang.String) - Constructor in DatabaseMigrationTransactionManager +
+
dataSource - Property in DatabaseMigrationCommand +
+
dataSource - Property in DatabaseMigrationTransactionManager +
+
dataSourceName - Property in DatabaseChangeLogBuilder +
+
dataSourceName - Property in GrailsLiquibase +
+
dataSourceName - Property in GroovyChange +
+
DbmChangelogToGroovy - Class in org.grails.plugins.databasemigration.command +
+
DbmChangelogToGroovy() - Constructor in DbmChangelogToGroovy +
+
DbmCreateChangelog - Class in org.grails.plugins.databasemigration.command +
+
DbmCreateChangelog() - Constructor in DbmCreateChangelog +
+
DEFAULT_CHANGE_LOG_LOCATION - Property in PluginConstants +
+
DEFAULT_DATASOURCE_NAME - Property in PluginConstants +
+
DefaultDatabaseProductName - Property in GormDatabase +
+
defaultSchema - Property in DatabaseMigrationCommand +
+
defineCommandNames() - Method in GroovyDiffToChangeLogCommandStep +
+
defineCommandNames() - Method in GroovyGenerateChangeLogCommandStep +
+
description - Property in DatabaseMigrationGrailsPlugin +
+
documentation - Property in DatabaseMigrationGrailsPlugin +
+
doDiffToChangeLog(java.io.File, liquibase.database.Database, liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
doGenerateChangeLog(java.io.File, liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
doGeneratePreviousChangesetSql(java.io.Writer, liquibase.database.Database, liquibase.Liquibase, java.lang.String, java.lang.String) - Method in DatabaseMigrationCommand +
+
doWithApplicationContext() - Method in DatabaseMigrationGrailsPlugin +
+
doWithSpring() - Method in DatabaseMigrationGrailsPlugin +
+
+ + + +

E

+
+ +
EnvironmentAwareCodeGenConfig - Class in org.grails.plugins.databasemigration +
+
EnvironmentAwareCodeGenConfig(org.grails.config.CodeGenConfig, java.lang.String) - Constructor in EnvironmentAwareCodeGenConfig +
+
error(java.lang.String) - Method in GroovyChange +
Called by the validate closure.
+
executionContext - Property in ScriptDatabaseMigrationCommand +
+
+ + + +

F

+
+ +
fail(java.lang.String) - Method in GroovyPrecondition +
Called from the check closure as a shortcut to throw a PreconditionFailedException.
+
finishInitialization() - Method in GroovyChange +
+
+ + + +

G

+
+ +
generateCheckSum() - Method in GroovyChange +
+
generateRollbackStatements(liquibase.database.Database) - Method in GroovyChange +
+
generateStatements(liquibase.database.Database) - Method in GroovyChange +
+
getApplication() - Method in GroovyChange +
Called from the change or rollback closure.
+
getApplication() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getArgs() - Method in DatabaseMigrationCommand +
+
getChangeLogFile() - Method in DatabaseMigrationCommand +
+
getChangeLogFileName() - Method in DatabaseMigrationCommand +
+
getChangeLogLocation() - Method in DatabaseMigrationCommand +
+
getConfig() - Method in ApplicationContextDatabaseMigrationCommand +
+
getConfig() - Method in DatabaseMigrationCommand +
+
getConfig() - Method in GroovyChange +
Called from the change or rollback closure.
+
getConfig() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getConfigPrefix() - Method in DatabaseMigrationCommand +
+
getConfirmationMessage() - Method in GroovyChange +
+
getConnection() - Method in GroovyChange +
Called from the change or rollback closure.
+
getConnection() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getContexts() - Method in DatabaseMigrationCommand +
+
getDatabaseConnection() - Method in GroovyChange +
Called from the change or rollback closure.
+
getDatabaseConnection() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getDataSourceConfig(grails.config.ConfigMap) - Method in DatabaseMigrationCommand +
+
getDataSourceName(java.lang.String) - Method in DatabaseMigrationGrailsPlugin +
+
getDialect() - Method in GormDatabase +
+
getDirection() - Method in NoopVisitor +
+
getEnvironmentConfig(java.lang.String) - Method in ApplicationContextDatabaseMigrationCommand +
+
getMetadata() - Method in GormDatabase +
Return the hibernate Metadata used by this database.
+
getName() - Method in ScriptDatabaseMigrationCommand +
+
getPriority() - Method in GroovyChangeLogSerializer +
+
getSnapshot(liquibase.structure.DatabaseObject) - Method in GormDatabase.1 +
+
getSql() - Method in GroovyChange +
Called from the change or rollback closure.
+
getSql() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getTransactionManager() - Method in DatabaseMigrationTransactionManager +
Returns:
The transactionManager bean for the current dataSource
+
getValidFileExtensions() - Method in GroovyChangeLogSerializer +
+
GormDatabase - Class in org.grails.plugins.databasemigration.liquibase +
+
GormDatabase.1 - Class in org.grails.plugins.databasemigration.liquibase +
+
GormDatabase.1() - Constructor in GormDatabase.1 +
+
GormDatabase(org.hibernate.dialect.Dialect, org.hibernate.service.ServiceRegistry) - Constructor in GormDatabase +
+
GrailsLiquibase - Class in org.grails.plugins.databasemigration.liquibase +
+
GrailsLiquibase(org.springframework.context.ApplicationContext) - Constructor in GrailsLiquibase +
+
grailsVersion - Property in DatabaseMigrationGrailsPlugin +
+
GroovyChange - Class in org.grails.plugins.databasemigration.liquibase +
Custom Groovy-based change.
+
GroovyChange.1 - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyChange.1() - Constructor in GroovyChange.1 +
+
GroovyChange() - Constructor in GroovyChange +
+
GroovyChangeLogParser - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyChangeLogParser() - Constructor in GroovyChangeLogParser +
+
GroovyChangeLogSerializer - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyChangeLogSerializer() - Constructor in GroovyChangeLogSerializer +
+
GroovyDiffToChangeLogCommandStep - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyDiffToChangeLogCommandStep() - Constructor in GroovyDiffToChangeLogCommandStep +
+
GroovyGenerateChangeLogCommandStep - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyGenerateChangeLogCommandStep() - Constructor in GroovyGenerateChangeLogCommandStep +
+
GroovyPrecondition - Class in org.grails.plugins.databasemigration.liquibase +
Custom Groovy-based precondition.
+
GroovyPrecondition.1 - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyPrecondition.1() - Constructor in GroovyPrecondition.1 +
+
GroovyPrecondition() - Constructor in GroovyPrecondition +
+
+ + + +

H

+
+ +
handle() - Method in ApplicationContextDatabaseMigrationCommand +
+
handle() - Method in DbmChangelogToGroovy +
+
handle() - Method in DbmCreateChangelog +
+
handle() - Method in ScriptDatabaseMigrationCommand +
+
hasOption(java.lang.String) - Method in DatabaseMigrationCommand +
+
+ + + +

I

+
+ +
initClosure - Property in GroovyChange +
+
initClosureCalled - Property in GroovyChange +
+
invokeMethod(java.lang.String, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
isCorrectDatabaseImplementation(liquibase.database.DatabaseConnection) - Method in GormDatabase +
+
isDefaultDataSource(java.lang.String) - Method in DatabaseMigrationGrailsPlugin +
+
isTimeFormat(java.lang.String) - Method in DatabaseMigrationCommand +
+
+ + + +

J

+
+ +
+ + + +

K

+
+ +
+ + + +

L

+
+ +
license - Property in DatabaseMigrationGrailsPlugin +
+
load(liquibase.parser.core.ParsedNode, liquibase.resource.ResourceAccessor) - Method in GroovyChange +
+
load(liquibase.parser.core.ParsedNode, liquibase.resource.ResourceAccessor) - Method in GroovyPrecondition +
+
+ + + +

M

+
+ +
+ + + +

N

+
+ +
name - Property in GroovyPrecondition +
+
NEWLINE - Field in ChangelogXml2Groovy +
+
NoopVisitor - Class in org.grails.plugins.databasemigration +
+
NoopVisitor(liquibase.database.Database) - Constructor in NoopVisitor +
+
+ + + +

O

+
+ +
optionValue(java.lang.String) - Method in DatabaseMigrationCommand +
+
outputHeader(liquibase.executor.Executor, java.lang.String, liquibase.Liquibase, liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
+ + + +

P

+
+ +
parseDateTime(java.lang.String, java.lang.String) - Method in DatabaseMigrationCommand +
+
parseToNode(java.lang.String, liquibase.changelog.ChangeLogParameters, liquibase.resource.ResourceAccessor) - Method in GroovyChangeLogParser +
+
performUpdate(liquibase.Liquibase) - Method in GrailsLiquibase +
+
PluginConstants - Class in org.grails.plugins.databasemigration +
+
PluginConstants() - Constructor in PluginConstants +
+
pluginExcludes - Property in DatabaseMigrationGrailsPlugin +
+
priority - Property in GroovyChangeLogParser +
+
processGrailsChangeProperty(java.lang.String, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
processGrailsPreconditionProperty(java.lang.String, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
+ + + +

Q

+
+ +
+ + + +

R

+
+ +
resolveChangeLogFile(java.lang.String) - Method in DatabaseMigrationCommand +
+
resourceAccessor - Property in GroovyPrecondition +
+
rollbackClosure - Property in GroovyChange +
+
run(liquibase.command.CommandResultsBuilder) - Method in GroovyDiffToChangeLogCommandStep +
+
run(liquibase.command.CommandResultsBuilder) - Method in GroovyGenerateChangeLogCommandStep +
+
+ + + +

S

+
+ +
scm - Property in DatabaseMigrationGrailsPlugin +
+
ScriptDatabaseMigrationCommand - Trait in org.grails.plugins.databasemigration.command +
+
serialize(liquibase.serializer.LiquibaseSerializable, boolean) - Method in GroovyChangeLogSerializer +
+
serializedObjectNamespace - Property in GroovyPrecondition +
+
setChangeLogProperties(java.util.Map, liquibase.changelog.ChangeLogParameters) - Method in GroovyChangeLogParser +
+
setConfig(grails.config.ConfigMap) - Method in ScriptDatabaseMigrationCommand +
+
setExecutionContext(org.grails.cli.profile.ExecutionContext) - Method in ApplicationContextDatabaseMigrationCommand +
+
setParent(java.lang.Object, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
shortName - Property in GormDatabase +
+
shouldRun() - Method in GroovyChange +
Returns:
Whether the database executor is instance of LoggingExecutor
+
skipBootstrap - Property in ApplicationContextDatabaseMigrationCommand +
+
sourceConfig - Property in ScriptDatabaseMigrationCommand +
+
sql - Property in GroovyChange +
+
sql - Property in GroovyPrecondition +
+
sqlStatement(liquibase.statement.SqlStatement) - Method in GroovyChange +
Called by the change or rollback closure.
+
sqlStatements(java.util.List) - Method in GroovyChange +
Called by the change or rollback closure.
+
supports(java.lang.String, liquibase.resource.ResourceAccessor) - Method in GroovyChangeLogParser +
+
supportsRollback(liquibase.database.Database) - Method in GroovyChange +
+
+ + + +

T

+
+ +
title - Property in DatabaseMigrationGrailsPlugin +
+
+ + + +

U

+
+ +
+ + + +

V

+
+ +
validate(liquibase.database.Database) - Method in GroovyChange +
+
validate(liquibase.database.Database) - Method in GroovyPrecondition +
+
validateClosure - Property in GroovyChange +
+
validateClosureCalled - Property in GroovyChange +
+
validationErrors - Property in GroovyChange +
+
visit(liquibase.changelog.ChangeSet, liquibase.changelog.DatabaseChangeLog, liquibase.database.Database, Set<ChangeSetFilterResult>) - Method in NoopVisitor +
+
+ + + +

W

+
+ +
warn(java.lang.String) - Method in GroovyChange +
Called by the validate closure.
+
warn(liquibase.database.Database) - Method in GroovyPrecondition +
+
warnings - Property in GroovyChange +
+
withDatabase(Map<String, String>, groovy.lang.Closure) - Method in DatabaseMigrationCommand +
+
withFileOrSystemOutWriter(java.lang.String, groovy.lang.Closure) - Method in DatabaseMigrationCommand +
+
withGormDatabase(org.springframework.context.ConfigurableApplicationContext, java.lang.String, groovy.lang.Closure) - Method in ApplicationContextDatabaseMigrationCommand +
+
withLiquibase(groovy.lang.Closure) - Method in DatabaseMigrationCommand +
+
withNewTransaction(java.util.Map, groovy.lang.Closure) - Method in DatabaseMigrationTransactionManager +
Executes the closure within the context of a new transaction which is + configured with the properties contained in transactionProperties. +
+
withNewTransaction(groovy.lang.Closure) - Method in GroovyChange +
Executes the grailsChange>change block within the context of a new transaction
+
withTransaction(groovy.lang.Closure) - Method in ApplicationContextDatabaseMigrationCommand +
+
withTransaction(org.springframework.transaction.TransactionDefinition, groovy.lang.Closure) - Method in DatabaseMigrationTransactionManager +
Executes the closure within the context of a transaction for the given TransactionDefinition
+
write(List<T>, java.io.OutputStream) - Method in GroovyChangeLogSerializer +
+
+ + + +

X

+
+ +
+ + + +

Y

+
+ +
+ + + +

Z

+
+ +
+ + + +

_

+
+ +
+ + +
+ + +A + +B + +C + +D + +E + +F + +G + +H + +I + +J + +K + +L + +M + +N + +O + +P + +Q + +R + +S + +T + +U + +V + +W + +X + +Y + +Z + +_ + + + +
+ + + + + +
+ + + + diff --git a/5.0.0/api/index.html b/5.0.0/api/index.html new file mode 100644 index 00000000..6dabcf8e --- /dev/null +++ b/5.0.0/api/index.html @@ -0,0 +1,90 @@ + + + + +Index (database-migration 5.0.0 API) + + + + + + + + + + + + + + <noscript> + <div>JavaScript is disabled on your browser.</div> + </noscript> + <h2>Frame Alert</h2> + <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + diff --git a/5.0.0/api/inherit.gif b/5.0.0/api/inherit.gif new file mode 100644 index 00000000..c814867a Binary files /dev/null and b/5.0.0/api/inherit.gif differ diff --git a/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html b/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html new file mode 100644 index 00000000..fab0dad4 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html @@ -0,0 +1,261 @@ + + + + + + + + + + + DatabaseMigrationException (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class DatabaseMigrationException

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html b/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html new file mode 100644 index 00000000..e99a9ac9 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html @@ -0,0 +1,481 @@ + + + + + + + + + + + DatabaseMigrationGrailsPlugin (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class DatabaseMigrationGrailsPlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html b/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html new file mode 100644 index 00000000..d559068b --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html @@ -0,0 +1,441 @@ + + + + + + + + + + + DatabaseMigrationTransactionManager (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class DatabaseMigrationTransactionManager

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html b/5.0.0/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html new file mode 100644 index 00000000..d38e1126 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html @@ -0,0 +1,238 @@ + + + + + + + + + + + EnvironmentAwareCodeGenConfig (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class EnvironmentAwareCodeGenConfig

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/NoopVisitor.html b/5.0.0/api/org/grails/plugins/databasemigration/NoopVisitor.html new file mode 100644 index 00000000..ba17230d --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/NoopVisitor.html @@ -0,0 +1,362 @@ + + + + + + + + + + + NoopVisitor (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class NoopVisitor

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/PluginConstants.html b/5.0.0/api/org/grails/plugins/databasemigration/PluginConstants.html new file mode 100644 index 00000000..736f3847 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/PluginConstants.html @@ -0,0 +1,325 @@ + + + + + + + + + + + PluginConstants (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class PluginConstants

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html b/5.0.0/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html new file mode 100644 index 00000000..812dd9e7 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html @@ -0,0 +1,418 @@ + + + + + + + + + + + ApplicationContextDatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Trait ApplicationContextDatabaseMigrationCommand

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html b/5.0.0/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html new file mode 100644 index 00000000..174e6333 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html @@ -0,0 +1,662 @@ + + + + + + + + + + + DatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Trait DatabaseMigrationCommand

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html b/5.0.0/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html new file mode 100644 index 00000000..6b7cb9fb --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html @@ -0,0 +1,307 @@ + + + + + + + + + + + DbmChangelogToGroovy (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Class DbmChangelogToGroovy

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html b/5.0.0/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html new file mode 100644 index 00000000..4119d98e --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html @@ -0,0 +1,307 @@ + + + + + + + + + + + DbmCreateChangelog (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Class DbmCreateChangelog

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html b/5.0.0/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html new file mode 100644 index 00000000..8d1b1ead --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html @@ -0,0 +1,388 @@ + + + + + + + + + + + ScriptDatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Trait ScriptDatabaseMigrationCommand

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/package-frame.html b/5.0.0/api/org/grails/plugins/databasemigration/command/package-frame.html new file mode 100644 index 00000000..d01d3437 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/package-frame.html @@ -0,0 +1,66 @@ + + + + + org.grails.plugins.databasemigration.command + + + + + + + + + + +
+ org.grails.plugins.databasemigration.command +
+ + + + +
+

Traits

+ +
+ + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/command/package-summary.html b/5.0.0/api/org/grails/plugins/databasemigration/command/package-summary.html new file mode 100644 index 00000000..8ab3b637 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/command/package-summary.html @@ -0,0 +1,194 @@ + + + + + +org.grails.plugins.databasemigration.command (database-migration 5.0.0 API) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package org.grails.plugins.databasemigration.command

+
+ + + +
+ + + +
+ +
+ + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/ChangelogXml2Groovy.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/ChangelogXml2Groovy.html new file mode 100644 index 00000000..237a4071 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/ChangelogXml2Groovy.html @@ -0,0 +1,386 @@ + + + + + + + + + + + ChangelogXml2Groovy (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class ChangelogXml2Groovy

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/DatabaseChangeLogBuilder.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/DatabaseChangeLogBuilder.html new file mode 100644 index 00000000..81e8da47 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/DatabaseChangeLogBuilder.html @@ -0,0 +1,456 @@ + + + + + + + + + + + DatabaseChangeLogBuilder (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class DatabaseChangeLogBuilder

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.1.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.1.html new file mode 100644 index 00000000..1ad2d390 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.1.html @@ -0,0 +1,281 @@ + + + + + + + + + + + GormDatabase.1 (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GormDatabase.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.html new file mode 100644 index 00000000..51d9ec22 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.html @@ -0,0 +1,430 @@ + + + + + + + + + + + GormDatabase (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GormDatabase

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GrailsLiquibase.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GrailsLiquibase.html new file mode 100644 index 00000000..76606f47 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GrailsLiquibase.html @@ -0,0 +1,378 @@ + + + + + + + + + + + GrailsLiquibase (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GrailsLiquibase

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.1.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.1.html new file mode 100644 index 00000000..a42ad16b --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.1.html @@ -0,0 +1,281 @@ + + + + + + + + + + + GroovyChange.1 (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChange.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.html new file mode 100644 index 00000000..96a3b02d --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.html @@ -0,0 +1,831 @@ + + + + + + + + + + + GroovyChange (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChange

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogParser.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogParser.html new file mode 100644 index 00000000..af2a6f95 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogParser.html @@ -0,0 +1,379 @@ + + + + + + + + + + + GroovyChangeLogParser (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChangeLogParser

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSerializer.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSerializer.html new file mode 100644 index 00000000..7a27e6d6 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSerializer.html @@ -0,0 +1,367 @@ + + + + + + + + + + + GroovyChangeLogSerializer (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChangeLogSerializer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyDiffToChangeLogCommandStep.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyDiffToChangeLogCommandStep.html new file mode 100644 index 00000000..3f3ba22b --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyDiffToChangeLogCommandStep.html @@ -0,0 +1,340 @@ + + + + + + + + + + + GroovyDiffToChangeLogCommandStep (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyDiffToChangeLogCommandStep

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyGenerateChangeLogCommandStep.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyGenerateChangeLogCommandStep.html new file mode 100644 index 00000000..54d756fd --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyGenerateChangeLogCommandStep.html @@ -0,0 +1,340 @@ + + + + + + + + + + + GroovyGenerateChangeLogCommandStep (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyGenerateChangeLogCommandStep

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.1.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.1.html new file mode 100644 index 00000000..00d7e580 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.1.html @@ -0,0 +1,281 @@ + + + + + + + + + + + GroovyPrecondition.1 (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyPrecondition.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.html new file mode 100644 index 00000000..576367f3 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.html @@ -0,0 +1,594 @@ + + + + + + + + + + + GroovyPrecondition (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyPrecondition

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/package-frame.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/package-frame.html new file mode 100644 index 00000000..c252ccae --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/package-frame.html @@ -0,0 +1,58 @@ + + + + + org.grails.plugins.databasemigration.liquibase + + + + + + + + + + +
+ org.grails.plugins.databasemigration.liquibase +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/liquibase/package-summary.html b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/package-summary.html new file mode 100644 index 00000000..a77482f3 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/liquibase/package-summary.html @@ -0,0 +1,240 @@ + + + + + +org.grails.plugins.databasemigration.liquibase (database-migration 5.0.0 API) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package org.grails.plugins.databasemigration.liquibase

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/package-frame.html b/5.0.0/api/org/grails/plugins/databasemigration/package-frame.html new file mode 100644 index 00000000..1d9132ef --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/package-frame.html @@ -0,0 +1,66 @@ + + + + + org.grails.plugins.databasemigration + + + + + + + + + + +
+ org.grails.plugins.databasemigration +
+ + + + + +
+

Classes

+ +
+ + + + +
+

Exceptions

+ +
+ + + + + + + + diff --git a/5.0.0/api/org/grails/plugins/databasemigration/package-summary.html b/5.0.0/api/org/grails/plugins/databasemigration/package-summary.html new file mode 100644 index 00000000..b650bae0 --- /dev/null +++ b/5.0.0/api/org/grails/plugins/databasemigration/package-summary.html @@ -0,0 +1,202 @@ + + + + + +org.grails.plugins.databasemigration (database-migration 5.0.0 API) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package org.grails.plugins.databasemigration

+
+ + + +
+ + + + +
+ +
+ + + + +
+ +
+ + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/5.0.0/api/overview-frame.html b/5.0.0/api/overview-frame.html new file mode 100644 index 00000000..04a9311c --- /dev/null +++ b/5.0.0/api/overview-frame.html @@ -0,0 +1,51 @@ + + + + +Overview (Grails Database Migration Plugin 5.0.0) + + + + + + + + +
All Classes
+
+

Packages

+ +
+ + + diff --git a/5.0.0/api/overview-summary.html b/5.0.0/api/overview-summary.html new file mode 100644 index 00000000..4d634744 --- /dev/null +++ b/5.0.0/api/overview-summary.html @@ -0,0 +1,142 @@ + + + + + +Overview (database-migration 5.0.0 API) + + + + + + + + + + + +
+ + + + + +
+ + +
+

Grails Database Migration Plugin 5.0.0

+
+ +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Packages 
PackageDescription
org.grails.plugins.databasemigration 
org.grails.plugins.databasemigration.command 
org.grails.plugins.databasemigration.liquibase 
+
+ + + + diff --git a/5.0.0/api/package-list b/5.0.0/api/package-list new file mode 100644 index 00000000..ada26f25 --- /dev/null +++ b/5.0.0/api/package-list @@ -0,0 +1,3 @@ +org.grails.plugins.databasemigration +org.grails.plugins.databasemigration.command +org.grails.plugins.databasemigration.liquibase diff --git a/5.0.0/api/stylesheet.css b/5.0.0/api/stylesheet.css new file mode 100644 index 00000000..06eb31a1 --- /dev/null +++ b/5.0.0/api/stylesheet.css @@ -0,0 +1,2306 @@ +@charset "UTF-8"; + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { + display: block +} + +audio, canvas, video { + display: inline-block +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden] { + display: none +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +body { + margin: 0 +} + +a:focus { + outline: thin dotted +} + +a:active, a:hover { + outline: 0 +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, strong { + font-weight: bold +} + +dfn { + font-style: italic +} + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0 +} + +mark { + background: #ff0; + color: #000 +} + +code, kbd, pre, samp { + font-family: monospace, serif; + font-size: 1em +} + +pre { + white-space: pre-wrap +} + +q { + quotes: "C" "D" "8" "9" +} + +small { + font-size: 80% +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -0.5em +} + +sub { + bottom: -0.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 0 +} + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: .35em .625em .75em +} + +legend { + border: 0; + padding: 0 +} + +button, input, select, textarea { + font-family: inherit; + font-size: 100%; + margin: 0 +} + +button, input { + line-height: normal +} + +button, select { + text-transform: none +} + +button, html input[type="button"], input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], html input[disabled] { + cursor: default +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0 +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box +} + +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0 +} + +textarea { + overflow: auto; + vertical-align: top +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +@-ms-viewport { + width: device-width +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px + } +} + +.hidden { + display: none !important; + visibility: hidden !important +} + +.visible-xs { + display: none !important +} + +tr.visible-xs { + display: none !important +} + +th.visible-xs, td.visible-xs { + display: none !important +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important + } + + tr.visible-xs { + display: table-row !important + } + + th.visible-xs, td.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important + } + + tr.visible-xs.visible-sm { + display: table-row !important + } + + th.visible-xs.visible-sm, td.visible-xs.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important + } + + tr.visible-xs.visible-md { + display: table-row !important + } + + th.visible-xs.visible-md, td.visible-xs.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important + } + + tr.visible-xs.visible-lg { + display: table-row !important + } + + th.visible-xs.visible-lg, td.visible-xs.visible-lg { + display: table-cell !important + } +} + +.visible-sm { + display: none !important +} + +tr.visible-sm { + display: none !important +} + +th.visible-sm, td.visible-sm { + display: none !important +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important + } + + tr.visible-sm.visible-xs { + display: table-row !important + } + + th.visible-sm.visible-xs, td.visible-sm.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important + } + + tr.visible-sm { + display: table-row !important + } + + th.visible-sm, td.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important + } + + tr.visible-sm.visible-md { + display: table-row !important + } + + th.visible-sm.visible-md, td.visible-sm.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important + } + + tr.visible-sm.visible-lg { + display: table-row !important + } + + th.visible-sm.visible-lg, td.visible-sm.visible-lg { + display: table-cell !important + } +} + +.visible-md { + display: none !important +} + +tr.visible-md { + display: none !important +} + +th.visible-md, td.visible-md { + display: none !important +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important + } + + tr.visible-md.visible-xs { + display: table-row !important + } + + th.visible-md.visible-xs, td.visible-md.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important + } + + tr.visible-md.visible-sm { + display: table-row !important + } + + th.visible-md.visible-sm, td.visible-md.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important + } + + tr.visible-md { + display: table-row !important + } + + th.visible-md, td.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important + } + + tr.visible-md.visible-lg { + display: table-row !important + } + + th.visible-md.visible-lg, td.visible-md.visible-lg { + display: table-cell !important + } +} + +.visible-lg { + display: none !important +} + +tr.visible-lg { + display: none !important +} + +th.visible-lg, td.visible-lg { + display: none !important +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important + } + + tr.visible-lg.visible-xs { + display: table-row !important + } + + th.visible-lg.visible-xs, td.visible-lg.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important + } + + tr.visible-lg.visible-sm { + display: table-row !important + } + + th.visible-lg.visible-sm, td.visible-lg.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important + } + + tr.visible-lg.visible-md { + display: table-row !important + } + + th.visible-lg.visible-md, td.visible-lg.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important + } + + tr.visible-lg { + display: table-row !important + } + + th.visible-lg, td.visible-lg { + display: table-cell !important + } +} + +.hidden-xs { + display: block !important +} + +tr.hidden-xs { + display: table-row !important +} + +th.hidden-xs, td.hidden-xs { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important + } + + tr.hidden-xs { + display: none !important + } + + th.hidden-xs, td.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important + } + + tr.hidden-xs.hidden-sm { + display: none !important + } + + th.hidden-xs.hidden-sm, td.hidden-xs.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important + } + + tr.hidden-xs.hidden-md { + display: none !important + } + + th.hidden-xs.hidden-md, td.hidden-xs.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important + } + + tr.hidden-xs.hidden-lg { + display: none !important + } + + th.hidden-xs.hidden-lg, td.hidden-xs.hidden-lg { + display: none !important + } +} + +.hidden-sm { + display: block !important +} + +tr.hidden-sm { + display: table-row !important +} + +th.hidden-sm, td.hidden-sm { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important + } + + tr.hidden-sm.hidden-xs { + display: none !important + } + + th.hidden-sm.hidden-xs, td.hidden-sm.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important + } + + tr.hidden-sm { + display: none !important + } + + th.hidden-sm, td.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important + } + + tr.hidden-sm.hidden-md { + display: none !important + } + + th.hidden-sm.hidden-md, td.hidden-sm.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important + } + + tr.hidden-sm.hidden-lg { + display: none !important + } + + th.hidden-sm.hidden-lg, td.hidden-sm.hidden-lg { + display: none !important + } +} + +.hidden-md { + display: block !important +} + +tr.hidden-md { + display: table-row !important +} + +th.hidden-md, td.hidden-md { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important + } + + tr.hidden-md.hidden-xs { + display: none !important + } + + th.hidden-md.hidden-xs, td.hidden-md.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important + } + + tr.hidden-md.hidden-sm { + display: none !important + } + + th.hidden-md.hidden-sm, td.hidden-md.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important + } + + tr.hidden-md { + display: none !important + } + + th.hidden-md, td.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important + } + + tr.hidden-md.hidden-lg { + display: none !important + } + + th.hidden-md.hidden-lg, td.hidden-md.hidden-lg { + display: none !important + } +} + +.hidden-lg { + display: block !important +} + +tr.hidden-lg { + display: table-row !important +} + +th.hidden-lg, td.hidden-lg { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important + } + + tr.hidden-lg.hidden-xs { + display: none !important + } + + th.hidden-lg.hidden-xs, td.hidden-lg.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important + } + + tr.hidden-lg.hidden-sm { + display: none !important + } + + th.hidden-lg.hidden-sm, td.hidden-lg.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important + } + + tr.hidden-lg.hidden-md { + display: none !important + } + + th.hidden-lg.hidden-md, td.hidden-lg.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important + } + + tr.hidden-lg { + display: none !important + } + + th.hidden-lg, td.hidden-lg { + display: none !important + } +} + +.visible-print { + display: none !important +} + +tr.visible-print { + display: none !important +} + +th.visible-print, td.visible-print { + display: none !important +} + +@media print { + .visible-print { + display: block !important + } + + tr.visible-print { + display: table-row !important + } + + th.visible-print, td.visible-print { + display: table-cell !important + } + + .hidden-print { + display: none !important + } + + tr.hidden-print { + display: none !important + } + + th.hidden-print, td.hidden-print { + display: none !important + } +} + +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px +} + +.container:before, .container:after { + content: " "; + display: table +} + +.container:after { + clear: both +} + +.row-fluid { + margin-left: -15px; + margin-right: -15px +} + +.row-fluid:before, .row-fluid:after { + content: " "; + display: table +} + +.row-fluid:after { + clear: both +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 { + float: left +} + +.col-xs-1 { + width: 8.333333333333332% +} + +.col-xs-2 { + width: 16.666666666666664% +} + +.col-xs-3 { + width: 25% +} + +.col-xs-4 { + width: 33.33333333333333% +} + +.col-xs-5 { + width: 41.66666666666667% +} + +.col-xs-6 { + width: 50% +} + +.col-xs-7 { + width: 58.333333333333336% +} + +.col-xs-8 { + width: 66.66666666666666% +} + +.col-xs-9 { + width: 75% +} + +.col-xs-10 { + width: 83.33333333333334% +} + +.col-xs-11 { + width: 91.66666666666666% +} + +.col-xs-12 { + width: 100% +} + +@media (min-width: 768px) { + .container { + max-width: 750px + } + + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 { + float: left + } + + .col-sm-1 { + width: 8.333333333333332% + } + + .col-sm-2 { + width: 16.666666666666664% + } + + .col-sm-3 { + width: 25% + } + + .col-sm-4 { + width: 33.33333333333333% + } + + .col-sm-5 { + width: 41.66666666666667% + } + + .col-sm-6 { + width: 50% + } + + .col-sm-7 { + width: 58.333333333333336% + } + + .col-sm-8 { + width: 66.66666666666666% + } + + .col-sm-9 { + width: 75% + } + + .col-sm-10 { + width: 83.33333333333334% + } + + .col-sm-11 { + width: 91.66666666666666% + } + + .col-sm-12 { + width: 100% + } + + .col-sm-push-1 { + left: 8.333333333333332% + } + + .col-sm-push-2 { + left: 16.666666666666664% + } + + .col-sm-push-3 { + left: 25% + } + + .col-sm-push-4 { + left: 33.33333333333333% + } + + .col-sm-push-5 { + left: 41.66666666666667% + } + + .col-sm-push-6 { + left: 50% + } + + .col-sm-push-7 { + left: 58.333333333333336% + } + + .col-sm-push-8 { + left: 66.66666666666666% + } + + .col-sm-push-9 { + left: 75% + } + + .col-sm-push-10 { + left: 83.33333333333334% + } + + .col-sm-push-11 { + left: 91.66666666666666% + } + + .col-sm-pull-1 { + right: 8.333333333333332% + } + + .col-sm-pull-2 { + right: 16.666666666666664% + } + + .col-sm-pull-3 { + right: 25% + } + + .col-sm-pull-4 { + right: 33.33333333333333% + } + + .col-sm-pull-5 { + right: 41.66666666666667% + } + + .col-sm-pull-6 { + right: 50% + } + + .col-sm-pull-7 { + right: 58.333333333333336% + } + + .col-sm-pull-8 { + right: 66.66666666666666% + } + + .col-sm-pull-9 { + right: 75% + } + + .col-sm-pull-10 { + right: 83.33333333333334% + } + + .col-sm-pull-11 { + right: 91.66666666666666% + } + + .col-sm-offset-1 { + margin-left: 8.333333333333332% + } + + .col-sm-offset-2 { + margin-left: 16.666666666666664% + } + + .col-sm-offset-3 { + margin-left: 25% + } + + .col-sm-offset-4 { + margin-left: 33.33333333333333% + } + + .col-sm-offset-5 { + margin-left: 41.66666666666667% + } + + .col-sm-offset-6 { + margin-left: 50% + } + + .col-sm-offset-7 { + margin-left: 58.333333333333336% + } + + .col-sm-offset-8 { + margin-left: 66.66666666666666% + } + + .col-sm-offset-9 { + margin-left: 75% + } + + .col-sm-offset-10 { + margin-left: 83.33333333333334% + } + + .col-sm-offset-11 { + margin-left: 91.66666666666666% + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px + } + + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 { + float: left + } + + .col-md-1 { + width: 8.333333333333332% + } + + .col-md-2 { + width: 16.666666666666664% + } + + .col-md-3 { + width: 25% + } + + .col-md-4 { + width: 33.33333333333333% + } + + .col-md-5 { + width: 41.66666666666667% + } + + .col-md-6 { + width: 50% + } + + .col-md-7 { + width: 58.333333333333336% + } + + .col-md-8 { + width: 66.66666666666666% + } + + .col-md-9 { + width: 75% + } + + .col-md-10 { + width: 83.33333333333334% + } + + .col-md-11 { + width: 91.66666666666666% + } + + .col-md-12 { + width: 100% + } + + .col-md-push-0 { + left: auto + } + + .col-md-push-1 { + left: 8.333333333333332% + } + + .col-md-push-2 { + left: 16.666666666666664% + } + + .col-md-push-3 { + left: 25% + } + + .col-md-push-4 { + left: 33.33333333333333% + } + + .col-md-push-5 { + left: 41.66666666666667% + } + + .col-md-push-6 { + left: 50% + } + + .col-md-push-7 { + left: 58.333333333333336% + } + + .col-md-push-8 { + left: 66.66666666666666% + } + + .col-md-push-9 { + left: 75% + } + + .col-md-push-10 { + left: 83.33333333333334% + } + + .col-md-push-11 { + left: 91.66666666666666% + } + + .col-md-pull-0 { + right: auto + } + + .col-md-pull-1 { + right: 8.333333333333332% + } + + .col-md-pull-2 { + right: 16.666666666666664% + } + + .col-md-pull-3 { + right: 25% + } + + .col-md-pull-4 { + right: 33.33333333333333% + } + + .col-md-pull-5 { + right: 41.66666666666667% + } + + .col-md-pull-6 { + right: 50% + } + + .col-md-pull-7 { + right: 58.333333333333336% + } + + .col-md-pull-8 { + right: 66.66666666666666% + } + + .col-md-pull-9 { + right: 75% + } + + .col-md-pull-10 { + right: 83.33333333333334% + } + + .col-md-pull-11 { + right: 91.66666666666666% + } + + .col-md-offset-0 { + margin-left: 0 + } + + .col-md-offset-1 { + margin-left: 8.333333333333332% + } + + .col-md-offset-2 { + margin-left: 16.666666666666664% + } + + .col-md-offset-3 { + margin-left: 25% + } + + .col-md-offset-4 { + margin-left: 33.33333333333333% + } + + .col-md-offset-5 { + margin-left: 41.66666666666667% + } + + .col-md-offset-6 { + margin-left: 50% + } + + .col-md-offset-7 { + margin-left: 58.333333333333336% + } + + .col-md-offset-8 { + margin-left: 66.66666666666666% + } + + .col-md-offset-9 { + margin-left: 75% + } + + .col-md-offset-10 { + margin-left: 83.33333333333334% + } + + .col-md-offset-11 { + margin-left: 91.66666666666666% + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1170px + } + + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 { + float: left + } + + .col-lg-1 { + width: 8.333333333333332% + } + + .col-lg-2 { + width: 16.666666666666664% + } + + .col-lg-3 { + width: 25% + } + + .col-lg-4 { + width: 33.33333333333333% + } + + .col-lg-5 { + width: 41.66666666666667% + } + + .col-lg-6 { + width: 50% + } + + .col-lg-7 { + width: 58.333333333333336% + } + + .col-lg-8 { + width: 66.66666666666666% + } + + .col-lg-9 { + width: 75% + } + + .col-lg-10 { + width: 83.33333333333334% + } + + .col-lg-11 { + width: 91.66666666666666% + } + + .col-lg-12 { + width: 100% + } + + .col-lg-push-0 { + left: auto + } + + .col-lg-push-1 { + left: 8.333333333333332% + } + + .col-lg-push-2 { + left: 16.666666666666664% + } + + .col-lg-push-3 { + left: 25% + } + + .col-lg-push-4 { + left: 33.33333333333333% + } + + .col-lg-push-5 { + left: 41.66666666666667% + } + + .col-lg-push-6 { + left: 50% + } + + .col-lg-push-7 { + left: 58.333333333333336% + } + + .col-lg-push-8 { + left: 66.66666666666666% + } + + .col-lg-push-9 { + left: 75% + } + + .col-lg-push-10 { + left: 83.33333333333334% + } + + .col-lg-push-11 { + left: 91.66666666666666% + } + + .col-lg-pull-0 { + right: auto + } + + .col-lg-pull-1 { + right: 8.333333333333332% + } + + .col-lg-pull-2 { + right: 16.666666666666664% + } + + .col-lg-pull-3 { + right: 25% + } + + .col-lg-pull-4 { + right: 33.33333333333333% + } + + .col-lg-pull-5 { + right: 41.66666666666667% + } + + .col-lg-pull-6 { + right: 50% + } + + .col-lg-pull-7 { + right: 58.333333333333336% + } + + .col-lg-pull-8 { + right: 66.66666666666666% + } + + .col-lg-pull-9 { + right: 75% + } + + .col-lg-pull-10 { + right: 83.33333333333334% + } + + .col-lg-pull-11 { + right: 91.66666666666666% + } + + .col-lg-offset-0 { + margin-left: 0 + } + + .col-lg-offset-1 { + margin-left: 8.333333333333332% + } + + .col-lg-offset-2 { + margin-left: 16.666666666666664% + } + + .col-lg-offset-3 { + margin-left: 25% + } + + .col-lg-offset-4 { + margin-left: 33.33333333333333% + } + + .col-lg-offset-5 { + margin-left: 41.66666666666667% + } + + .col-lg-offset-6 { + margin-left: 50% + } + + .col-lg-offset-7 { + margin-left: 58.333333333333336% + } + + .col-lg-offset-8 { + margin-left: 66.66666666666666% + } + + .col-lg-offset-9 { + margin-left: 75% + } + + .col-lg-offset-10 { + margin-left: 83.33333333333334% + } + + .col-lg-offset-11 { + margin-left: 91.66666666666666% + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 0; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.btn:hover, .btn:focus { + color: #333; + text-decoration: none +} + +.btn:active, .btn.active { + outline: 0; + background-image: none +} + +.btn.disabled, .btn[disabled], fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: .65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc +} + +.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + color: #333; + background-color: #ebebeb; + border-color: #adadad +} + +.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + background-image: none +} + +.btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc +} + +.btn-primary { + color: #fff; + background-color: #428bca; + border-color: #357ebd +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + color: #fff; + background-color: #3276b1; + border-color: #285e8e +} + +.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + background-image: none +} + +.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ed9c28; + border-color: #d58512 +} + +.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + background-image: none +} + +.btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled:active, .btn-warning[disabled]:active, fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + color: #fff; + background-color: #d2322d; + border-color: #ac2925 +} + +.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + background-image: none +} + +.btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled:active, .btn-danger[disabled]:active, fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + color: #fff; + background-color: #47a447; + border-color: #398439 +} + +.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + background-image: none +} + +.btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled:active, .btn-success[disabled]:active, fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + color: #fff; + background-color: #39b3d7; + border-color: #269abc +} + +.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + background-image: none +} + +.btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled:active, .btn-info[disabled]:active, fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0 +} + +.btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { + border-color: transparent +} + +.btn-link:hover, .btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent +} + +.btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { + color: #999; + text-decoration: none +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px +} + +.btn-sm, .btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-xs { + padding: 1px 5px +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0 +} + +.btn-block + .btn-block { + margin-top: 5px +} + +input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { + width: 100% +} + +.btn-default .caret { + border-top-color: #333 +} + +.btn-primary .caret, .btn-success .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret { + border-top-color: #fff +} + +.dropup .btn-default .caret { + border-bottom-color: #333 +} + +.dropup .btn-primary .caret, .dropup .btn-success .caret, .dropup .btn-warning .caret, .dropup .btn-danger .caret, .dropup .btn-info .caret { + border-bottom-color: #fff +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle +} + +.btn-group > .btn, .btn-group-vertical > .btn { + position: relative; + float: left +} + +.btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { + z-index: 2 +} + +.btn-group > .btn:focus, .btn-group-vertical > .btn:focus { + outline: 0 +} + +.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { + margin-left: -1px +} + +.btn-toolbar:before, .btn-toolbar:after { + content: " "; + display: table +} + +.btn-toolbar:after { + clear: both +} + +.btn-toolbar .btn-group { + float: left +} + +.btn-toolbar > .btn + .btn, .btn-toolbar > .btn-group + .btn, .btn-toolbar > .btn + .btn-group, .btn-toolbar > .btn-group + .btn-group { + margin-left: 5px +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0 +} + +.btn-group > .btn:first-child { + margin-left: 0 +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0 +} + +.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0 +} + +.btn-group > .btn-group { + float: left +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0 +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0 +} + +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0 +} + +.btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px +} + +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px +} + +.btn-group.open .dropdown-toggle { + background: #f2f2f2 +} + +.btn .caret { + margin-left: 0 +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0 +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px +} + +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100% +} + +.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after { + content: " "; + display: table +} + +.btn-group-vertical > .btn-group:after { + clear: both +} + +.btn-group-vertical > .btn-group > .btn { + float: none +} + +.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0 +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0 +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-top-left-radius: 0 +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, .btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0 +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate +} + +.btn-group-justified .btn { + float: none; + display: table-cell; + width: 1% +} + +[data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; + content: "" +} + +.dropdown { + position: relative +} + +.dropdown-toggle:focus { + outline: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + background-clip: padding-box +} + +.dropdown-menu.pull-right { + right: 0; + left: auto +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.dropdown-menu > li > a { + font-size: 14px; + text-decoration: none; + display: block; + padding: 5px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333; + white-space: nowrap +} + +.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { + text-decoration: none; + color: #fff; + background-color: #428bca +} + +.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + outline: 0; + background-color: #428bca +} + +.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { + color: #999 +} + +.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + cursor: not-allowed +} + +.open > .dropdown-menu { + display: block +} + +.open > a { + outline: 0 +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999 +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990 +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto +} + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000; + content: "" +} + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto + } +} + +body, html { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + margin: 0; + background: #ededed; + color: #343437; + line-height: 2em; + font-weight: 300; + font-size: .95em +} + +h1 { + font-size: 2.5em; + margin: .8em 0 +} + +body.center { + padding: 0 30px; + background: #FFF; + font-size: 1em +} + +ul li { + list-style-type: disc +} + +a { + color: #4290ad; + text-decoration: none; + font-weight: normal +} + +a:hover { + text-decoration: underline +} + +h1, h2, h3 { + font-weight: 300; + line-height: 1.2em +} + +.topNav, .bottomNav { + background: #f2f2f2; + margin: 0 -30px; + margin-bottom: 20px +} + +.topNav:before, .bottomNav:before, .topNav:after, .bottomNav:after { + content: " "; + display: table +} + +.topNav:after, .bottomNav:after { + clear: both +} + +.topNav ul.navList, .bottomNav ul.navList { + padding: 10px 20px; + margin: 0; + list-style-type: none +} + +.topNav ul.navList li, .bottomNav ul.navList li { + display: inline; + padding: 0 10px +} + +.topNav ul.navList li.navBarCell1Rev, .bottomNav ul.navList li.navBarCell1Rev { + font-weight: bold +} + +.bottomNav { + margin-top: 30px; + margin-bottom: 0 +} + +.aboutLanguage { + color: #BBB; + background: white; + text-align: center; + padding: 20px 0 +} + +.subNav { + padding-bottom: 10px; + margin-bottom: 10px; + border-bottom: 1px solid #EEE +} + +.subNav:before, .subNav:after { + content: " "; + display: table +} + +.subNav:after { + clear: both +} + +.subNav div:before, .subNav div:after { + content: " "; + display: table +} + +.subNav div:after { + clear: both +} + +.subNav ul.navList, .subNav ul { + font-size: .9em; + margin: 0; + padding: 00; + float: left; + list-style-type: none +} + +.subNav ul.navList li, .subNav ul li { + padding: 0 5px; + display: inline +} + +table.overviewSummary, .contentContainer ul li table { + width: 100%; + margin: 20px 0 +} + +table.overviewSummary caption, .contentContainer ul li table caption { + text-align: left; + font-weight: 100; + font-size: 1em; + float: left; + padding: 0 10px; + margin-top: 10px; + background: #db4800; + color: white +} + +table.overviewSummary tr th, .contentContainer ul li table tr th { + padding: 10px; + font-weight: bold; + font-size: 1em; + text-align: left +} + +table.overviewSummary tr td, .contentContainer ul li table tr td { + vertical-align: top; + font-size: .9em; + padding: 5px 10px; + border-top: 1px solid #EEE +} + +table.overviewSummary tbody > tr:nth-child(odd) > td, .contentContainer ul li table tbody > tr:nth-child(odd) > td { + background-color: #f9f9f9 +} + +body.left { + padding-top: 10px +} + +body.left h1, body.left h2 { + display: inline; + text-align: left; + font-weight: 100; + font-size: 1em; + margin: 0 10px; + padding: 3px 10px; + margin-top: 10px; + background: #db4800; + color: white; + line-height: 40px +} + +body.left .indexHeader { + margin: 0; + padding: 0 15px; + font-size: .9em +} + +body.left ul { + list-style-type: none; + margin: 0; + padding: 0 +} + +body.left ul li { + margin: 0; + padding: 0 +} + +body.left ul li a { + display: block; + padding: 0 15px; + text-decoration: none +} + +body.left ul li a:hover { + text-decoration: underline +} + +.contentContainer .header ul, .contentContainer ul.blockList { + padding: 0 +} + +.contentContainer .header ul > li, .contentContainer ul.blockList > li { + list-style-type: none +} + +.contentContainer ul.inheritance { + margin-left: 0; + padding-left: 0 +} + +.contentContainer ul.inheritance li { + list-style-type: none +} + +.contentContainer ul.inheritance ul.inheritance { + padding-left: 20px +} + +.contentContainer hr { + border: 0 none; + border-top: 1px solid #EEE; + margin-top: 30px; + margin-botom: 0 +} + +ul.blockList ul.blockList, ul.blockList ul.blockListLast { + border: 1px solid #EEE; + margin: 20px 0; + padding: 0 20px +} + +ul.blockList ul.blockList h4, ul.blockList ul.blockListLast h4, ul.blockList ul.blockList h3, ul.blockList ul.blockListLast h3 { + font-size: 1em; + font-weight: bold; + line-height: 2em; + text-indent: 10px; + border-bottom: 1px solid #EEE; + margin: 0 -20px; + padding: 5px 0; + background: #f2f2f2 +} + +ul.blockList ul.blockList li, ul.blockList ul.blockListLast li { + list-style-type: none +} + +ul.horizontal { + list-style-type: none; + padding: 0; + margin: 0; + font-size: .9em +} + +ul.horizontal li { + display: inline +} + +span.strong { + font-weight: bold +} + +a span.strong { + font-weight: normal +} \ No newline at end of file diff --git a/5.0.0/configuration.html b/5.0.0/configuration.html new file mode 100644 index 00000000..e831d2d8 --- /dev/null +++ b/5.0.0/configuration.html @@ -0,0 +1,626 @@ + + + + + + + +Configuration + + + + + + +
+
+

Configuration

+
+
+

There are a few configuration options for the plugin. All configurations are prefixed with grails.plugin.databasemigration:

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultMeaning

changelogLocation

grails-app/migrations

the folder containing the main changelog file (which can include one or more other files)

changelogFileName

changelog.groovy

the name of the main changelog file

changelogProperties

none

a map of properties to use for property substitution in Groovy DSL changelogs

contexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

dbDocLocation

target/dbdoc

the directory where the output from the dbm-db-doc script is written

dbDocController.enabled

true in dev mode

whether the /dbdoc/ url is accessible at runtime

dropOnStart

false

if true then drops all tables before auto-running migrations (if updateOnStart is true)

updateOnStart

false

if true then changesets from the specified list of names will be run at startup

updateOnStartFileName

none

the file name (relative to changelogLocation) to run at startup if updateOnStart is true

updateOnStartDefaultSchema

none

the default schema to use when running auto-migrate on start

updateOnStartContexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

updateAllOnStart

false

if true then changesets from the specified list of names will be run at startup for all dataSources. Useful for Grails Multitenancy with Multiple Databases (same db schema)

autoMigrateScripts

[RunApp]

the scripts when running auto-migrate. Useful to run auto-migrate during test phase with: [RunApp, TestApp]

excludeObjects

none

A comma-delimited list of database object names to ignore while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

includeObjects

none

A comma-delimited list of database object names to look for while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

databaseChangeLogTableName

databasechangelog

the Liquibase changelog record table name

databaseChangeLogLockTableName

databasechangeloglock

the Liquibase lock table name

+
+ + + + + +
+ + +All the above configs can be used for multiple datasources +
+
+
+

Multiple DataSource Example:

+
+
+

If secondary dataSource named "second" is configured in application.yml

+
+
+
+
dataSource:
+    pooled: true
+    jmxExport: true
+    driverClassName: org.h2.Driver
+    username: sa
+    password:
+    dbCreate: none
+    url: jdbc:h2:file:./multipleFirstDb
+    logSql: true
+    formatSql: true
+dataSources:
+    second:
+        pooled: true
+        jmxExport: true
+        driverClassName: org.h2.Driver
+        username: sa
+        password:
+        dbCreate: none
+        url: jdbc:h2:file:./multipleSecondDb
+
+
+
+

The configuration for this data source would be:

+
+
+
+
grails.plugin.databasemigration.reports.updateOnStart = true
+grails.plugin.databasemigration.reports.changelogFileName = changelog-second.groovy
+
+
+
+

The configuration for all data sources with same db schema would be:

+
+
+
+
grails.plugin.databasemigration.updateAllOnStart = true
+grails.plugin.databasemigration.changelogFileName = changelog.groovy
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/dbdoc.html b/5.0.0/dbdoc.html new file mode 100644 index 00000000..f8721290 --- /dev/null +++ b/5.0.0/dbdoc.html @@ -0,0 +1,487 @@ + + + + + + + +DbDoc Controller + + + + + + +
+
+

DbDoc Controller

+
+
+

You can use the dbm-db-doc script to generate static HTML files to view changelog information, but another option is to use the DbDocController at runtime. By default this controller is mapped to /appname/dbdoc/ but this can be customized with UrlMappings like any controller.

+
+
+

You probably don’t want to expose this information to all of your application’s users so by default the controller is only enabled in the development environment. But you can enable or disable it for any environment in application.groovy with the dbDocController.enabled config option. For example to enable for all environments (be sure to guard the URL with a security plugin in prod):

+
+
+
+
grails.plugin.databasemigration.dbDocController.enabled = true
+
+
+
+

or to enable in the production environment:

+
+
+
+
environments {
+   production {
+      grails.plugin.databasemigration.dbDocController.enabled = true
+   }
+   ...
+}
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/generalUsage.html b/5.0.0/generalUsage.html new file mode 100644 index 00000000..214b6b19 --- /dev/null +++ b/5.0.0/generalUsage.html @@ -0,0 +1,616 @@ + + + + + + + +General Usage + + + + + + +
+
+

General Usage

+
+
+

After creating the initial changelog, the typical workflow will be along the lines of:

+
+
+
    +
  • +

    make domain class changes that affect the schema

    +
  • +
  • +

    add changes to the changelog for them

    +
  • +
  • +

    backup your database in case something goes wrong

    +
  • +
  • +

    run grails dbm-update to update your development environment (or wherever you’re applying the changes)

    +
  • +
  • +

    check the updated domain class(es) and changelog(s) into source control

    +
  • +
+
+
+ + + + + +
+ + +
+
    +
  1. +

    When running migration scripts on non-development databases, it’s important that you backup the database before running the migration in case anything goes wrong. You could also make a copy of the database and run the script against that, and if there’s a problem the real database will be unaffected.

    +
  2. +
  3. +

    Setting the dbCreate setting to "none" is recommended when executing the dbm migration commands. Otherwise you might run into troubles and the commands could not be executed.

    +
  4. +
+
+
+
+
+

To create the changelog additions, you can either manually create the changes or with the dbm-gorm-diff script (you can also use the dbm-diff script but it’s far less convenient and requires a 2nd temporary database).

+
+
+

You have a few options with dbm-gorm-diff:

+
+
+
    +
  • +

    dbm-gorm-diff will dump to the console if no filename is specified, so you can copy/paste from there

    +
  • +
  • +

    if you include the --add parameter when running the script with a filename it will register an include for the filename in the main changelog for you

    +
  • +
+
+
+

Regardless of which approach you use, be sure to inspect generated changes and adjust as necessary.

+
+
+

Autorun on start

+
+

Since Liquibase maintains a record of changes that have been applied, you can avoid manually updating the database by taking advantage of the plugin’s auto-run feature. By default this is disabled, but you can enable it by adding

+
+
+
+
grails.plugin.databasemigration.updateOnStart = true
+
+
+
+

to application.groovy. In addition you must specify the file containing changes; specify the name using the updateOnStartFileName property, e.g.:

+
+
+
+
grails.plugin.databasemigration.updateOnStartFileName = 'changelog.groovy'
+
+
+
+

Since changelogs can contain changelogs you’ll most often just specify the root changelog, changelog.groovy by convention. Any changes that haven’t been executed (in the specified file(s) or files included by them) will be run in the order specified.

+
+
+

You may optionally limit the plugin’s auto-run feature to run only specific contexts. If this configuration parameter is empty or omitted, all contexts will be run.

+
+
+
+
grails.plugin.databasemigration.updateOnStartContexts = ['context1,context2']
+
+
+
+

You can be notified when migration are run (for example to do some work before and/or after the migrations execute) by registering a "callback" class as a Spring bean. The class can have any name and package and doesn’t have to implement any interface since its methods will be called using Groovy duck-typing.

+
+
+

The bean name is "migrationCallbacks" and there are currently three callback methods supported (all are optional):

+
+
+
    +
  • +

    beforeStartMigration will be called (if it exists) for each datasource before any migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
  • +

    onStartMigration will be called (if it exists) for each migration script; the method will be passed three arguments, the Liquibase Database, the Liquibase instance, and the changelog file name

    +
  • +
  • +

    afterMigrations will be called (if it exists) for each datasource after all migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
+
+
+

An example class will look like this:

+
+
+
+
package com.mycompany.myapp
+
+import liquibase.Liquibase
+import liquibase.database.Database
+
+class MigrationCallbacks {
+
+   void beforeStartMigration(Database Database) {
+      ...
+   }
+
+   void onStartMigration(Database database, Liquibase liquibase, String changelogName) {
+      ...
+   }
+
+   void afterMigrations(Database Database) {
+      ...
+   }
+}
+
+
+
+

Register it in resources.groovy:

+
+
+
+
import com.mycompany.myapp.MigrationCallbacks
+
+beans = {
+   migrationCallbacks(MigrationCallbacks)
+}
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/gettingStarted.html b/5.0.0/gettingStarted.html new file mode 100644 index 00000000..33d4f8d0 --- /dev/null +++ b/5.0.0/gettingStarted.html @@ -0,0 +1,601 @@ + + + + + + + +Getting Started + + + + + + +
+
+

Getting Started

+
+
+

The first step is to add a dependency for the plugin in build.gradle:

+
+
+
+
buildscript {
+   dependencies {
+      ...
+      classpath 'org.grails.plugins:database-migration:5.0.0'
+   }
+}
+
+dependencies {
+   ...
+     implementation 'org.grails.plugins:database-migration:5.0.0'
+}
+
+
+
+

It is also recommended to add a direct dependency to liquibase because Spring Boot overrides the one provided by this plugin

+
+
+
+
dependencies {
+   ...
+     implementation 'org.liquibase:liquibase-core:4.19.0'
+}
+
+
+
+

You should also tell Gradle about the migrations folder. If using Grails 4, make sure the configuration below is BEFORE the +dependencies configuration, so that the sourceSets declaration takes effect.

+
+
+
+
sourceSets {
+    main {
+        resources {
+            srcDir 'grails-app/migrations'
+        }
+    }
+}
+
+
+
+

Typical initial workflow

+
+
+

Next you’ll need to create an initial changelog. You can use Liquibase XML or the plugin’s Groovy DSL for individual files. You can even mix and match; Groovy files can include other Groovy files and Liquibase XML files (but XML files can’t include Groovy files).

+
+
+

Depending on the state of your database and code, you have two options; either create a changelog from the database or create it from your domain classes. The decision tends to be based on whether you prefer to design the database and adjust the domain classes to work with it, or to design your domain classes and use Hibernate to create the corresponding database structure.

+
+
+

To create a changelog from the database, use the dbm-generate-changelog script:

+
+
+
+
grails dbm-generate-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-changelog changelog.xml
+
+
+
+

depending on whether you prefer the Groovy DSL or XML. The filename is relative to the changelog base folder, which defaults to grails-app/migrations.

+
+
+ + + + + +
+ + +If you use the XML format (or use a non-default Groovy filename), be sure to change the name of the file in application.groovy so dbm-update and other scripts find the file: +
+
+
+
+
grails.plugin.databasemigration.changelogFileName = 'changelog.xml'
+
+
+
+

Since the database is already correct, run the dbm-changelog-sync script to record that the changes have already been applied:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Running this script is primarily a no-op except that it records the execution(s) in the Liquibase DATABASECHANGELOG table.

+
+
+

To create a changelog from your domain classes, use the dbm-generate-gorm-changelog script:

+
+
+
+
grails dbm-generate-gorm-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-gorm-changelog changelog.xml
+
+
+
+

If you haven’t created the database yet, run the dbm-update script to create the corresponding tables:

+
+
+
+
grails dbm-update
+
+
+
+

or the dbm-changelog-sync script if the database is already in sync with your code:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Source control

+
+
+

Now you can commit the changelog and the corresponding application code to source control. Other developers can then update and synchronize their databases, and start doing migrations themselves.

+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/gorm.html b/5.0.0/gorm.html new file mode 100644 index 00000000..63886c08 --- /dev/null +++ b/5.0.0/gorm.html @@ -0,0 +1,512 @@ + + + + + + + +GORM Support + + + + + + +
+
+

GORM Support

+
+
+

The plugin’s support for GORM is one feature that differentiates it from using Liquibase directly. Typically, when using Liquibase you make changes to a database yourself, and then create changesets manually, or use a diff script to compare your updated database to one that hasn’t been updated yet. This is a decent amount of work and is rather error-prone. It’s easy to forget some changes that aren’t required but help performance, for example creating an index on a foreign key when using MySQL.

+
+
+

create-drop, create, and update

+
+
+

On the other end of the spectrum, Hibernate’s create-drop mode (or create) will create a database that matches your domain model, but it’s destructive since all previous data is lost when it runs. This works well in the very early stages of development but gets frustrating quickly. Unfortunately Hibernate’s update mode seems like a good compromise since it only makes changes to your existing schema, but it’s very limited in what it will do. It’s very pessimistic and won’t make any changes that could lose data. So it will add new tables and columns, but won’t drop anything. If you remove a not-null domain class property you’ll find you can’t insert anymore since the column is still there. And it will create not-null columns as nullable since otherwise existing data would be invalid. It won’t even widen a column e.g. from VARCHAR(100) to VARCHAR(200).

+
+
+

dbm-gorm-diff

+
+
+

The plugin provides a script that will compare your GORM current domain model with a database that you specify, and the result is a Liquibase changeset - dbm-gorm-diff. This is the same changeset you would get if you exported your domain model to a scratch database and diffed it with the other database, but it’s more convenient.

+
+
+

So a good workflow would be:

+
+
+
    +
  • +

    make whatever domain class changes you need (add new ones, delete unneeded ones, add/change/remove properties, etc.)

    +
  • +
  • +

    once your tests pass, and you’re ready to commit your changes to source control, run the script to generate the changeset that will bring your database back in line with your code

    +
  • +
  • +

    add the changeset to an existing changelog file, or use the include tag to include the whole file

    +
  • +
  • +

    run the changeset on your functional test database

    +
  • +
  • +

    assuming your functional tests pass, check everything in as one commit

    +
  • +
  • +

    the other members of your team will get both the code and database changes when they next update, and will know to run the update script to sync their database with the latest code

    +
  • +
  • +

    once you’re ready to deploy to QA for testing (or staging or production), you can run all the un-run changes since the last deployment

    +
  • +
+
+
+

dbm-generate-gorm-changelog

+
+
+

The dbm-generate-gorm-changelog script is useful for when you want to switch from create-drop mode to doing proper migrations. It’s not very useful if you already have a database that’s in sync with your code, since you can just use the dbm-generate-changelog script that creates a changelog from your database.

+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/groovyChanges.html b/5.0.0/groovyChanges.html new file mode 100644 index 00000000..73954491 --- /dev/null +++ b/5.0.0/groovyChanges.html @@ -0,0 +1,599 @@ + + + + + + + +Groovy Changes + + + + + + +
+
+

Groovy Changes

+
+
+

In addition to the built-in Liquibase changes (see the documentation for what’s available) you can also make database changes using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsChange tag name and are contained in a changeSet tag like standard built-in tags.

+
+
+

There are four supported inner tags and two callable methods (to override the default confirmation message and checksum value).

+
+
+

General format

+
+

This is the general format of a Groovy-based change; all inner tags and methods are optional:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      grailsChange {
+         init {
+             // arbitrary initialization code; note that no
+             // database or connection is available
+         }
+
+         validate {
+            // can call warn(String message) to log a warning
+            // or error(String message) to stop processing
+         }
+
+         change {
+            // arbitrary code; make changes directly and/or return a
+            // SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'change confirmation message'
+         }
+
+         rollback {
+            // arbitrary code; make rollback changes directly and/or
+            // return a SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'rollback confirmation message'
+         }
+
+         confirm 'confirmation message'
+
+         checkSum 'override value for checksum'
+      }
+
+   }
+}
+
+
+
+
+

Available variables

+
+

These variables are available throughout the change closure:

+
+
+
    +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
+
+
+

The change and rollback closures also have the following available:

+
+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
+
+
+

init

+
+
+

This is where any optional initialization should happen. You can’t access the database from this closure.

+
+
+

validate

+
+
+

If there are any necessary validation checks before executing changes or rollbacks they should be done here. You can log warnings by calling warn(String message) and stop processing by calling error(String message). It may make more sense to use one or more preConditions instead of directly validating here.

+
+
+

change

+
+
+

All migration changes are done in the change closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

rollback

+
+
+

All rollback changes are done in the rollback closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

confirm

+
+
+

The confirm(String message) method is used to specify the confirmation message to be shown. The default is "Executed GrailsChange" and it can be overridden in the change or rollback closures to allow phase-specific messages or outside of both closures to use the same message for the update and rollback phase.

+
+
+

checkSum

+
+
+

The checksum for the change will be generated automatically, but if you want to override the value that gets hashed you can specify it with the checkSum(String value) method.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/groovyPreconditions.html b/5.0.0/groovyPreconditions.html new file mode 100644 index 00000000..40b97e82 --- /dev/null +++ b/5.0.0/groovyPreconditions.html @@ -0,0 +1,580 @@ + + + + + + + +Groovy Preconditions + + + + + + +
+
+

Groovy Preconditions

+
+
+

In addition to the built-in Liquibase preconditions (see the documentation for what’s available) you can also specify preconditions using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsPrecondition tag name and are contained in the databaseChangeLog tag or in a changeSet tag like standard built-in tags.

+
+
+

General format

+
+

This is the general format of a Groovy-based precondition:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      preConditions {
+
+         grailsPrecondition {
+
+            check {
+
+               // use an assertion
+               assert x == x
+
+               // use an assertion with an error message
+               assert y == y : 'value cannot be 237'
+
+               // call the fail method
+               if (x != x) {
+                  fail 'x != x'
+               }
+
+               // throw an exception (the fail method is preferred)
+               if (y != y) {
+                  throw new RuntimeException('y != y')
+               }
+            }
+
+         }
+
+      }
+   }
+}
+
+
+
+

As you can see there are a few ways to indicate that a precondition wasn’t met:

+
+
+
    +
  • +

    use a simple assertion

    +
  • +
  • +

    use an assertion with a message

    +
  • +
  • +

    call the fail(String message) method (throws a PreconditionFailedException)

    +
  • +
  • +

    throw an exception (shouldn’t be necessary - use assert or fail() instead)

    +
  • +
+
+
+
+

Available variables

+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    changeLog - the current Liquibase DatabaseChangeLog instance

    +
  • +
+
+
+
+

Utility methods

+
+
    +
  • +

    createDatabaseSnapshotGenerator() - retrieves the DatabaseSnapshotGenerator for the current Database

    +
  • +
  • +

    createDatabaseSnapshot(String schemaName = null) - creates a DatabaseSnapshot for the current Database (and schema if specified)

    +
  • +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/index.html b/5.0.0/index.html new file mode 100644 index 00000000..83fce431 --- /dev/null +++ b/5.0.0/index.html @@ -0,0 +1,3884 @@ + + + + + + + +Grails Database Migration Plugin + + + + + + + +
+
+

1. Introduction to the Database Migration Plugin

+
+
+

The Database Migration plugin helps you manage database changes while developing Grails applications. The plugin uses the Liquibase library.

+
+
+

Using this plugin (and Liquibase in general) adds some structure and process to managing database changes. It will help avoid inconsistencies, communication issues, and other problems with ad-hoc approaches.

+
+
+

Database migrations are represented in text form, either using a Groovy DSL or native Liquibase XML, in one or more changelog files. This approach makes it natural to maintain the changelog files in source control and also works well with branches. Changelog files can include other changelog files, so often developers create hierarchical files organized with various schemes. One popular approach is to have a root changelog named changlog.groovy (or changelog.xml) and to include a changelog per feature/branch that includes multiple smaller changelogs. Once the feature is finished and merged into the main development tree/trunk the changelog files can either stay as they are or be merged into one large file. Use whatever approach makes sense for your applications, but keep in mind that there are many options available for changelog management.

+
+
+

Individual changes have an ID that should be globally unique, although they also include the username of the user making the change, making the combination of ID and username unique (although technically the ID, username, and changelog location are the "unique key").

+
+
+

As you make changes in your code (typically domain classes) that require changes in the database, you add a new change set to the changelog. Commit the code changes along with the changelog additions, and the other developers on your team will get both when they update from source control. Once they apply the new changes their code and development database will be in sync with your changes. Likewise when you deploy to a QA, a staging server, or production, you’ll run the un-run changes that correspond to the code updates to being that environment’s database in sync. Liquibase keeps track of previously executed changes so there’s no need to think about what has and hasn’t been run yet.

+
+
+

Scripts

+
+
+

Your primary interaction with the plugin will be using the provided scripts. For the most part these correspond to the many Liquibase commands that are typically executed directly from the commandline or with its Ant targets, but there are also a few Grails-specific scripts that take advantage of the information available from the GORM mappings.

+
+
+

All the scripts start with dbm- to ensure that they’re unique and don’t clash with scripts from Grails or other plugins.

+
+
+
+
+

2. Getting Started

+
+
+

The first step is to add a dependency for the plugin in build.gradle:

+
+
+
+
buildscript {
+   dependencies {
+      ...
+      classpath 'org.grails.plugins:database-migration:5.0.0'
+   }
+}
+
+dependencies {
+   ...
+     implementation 'org.grails.plugins:database-migration:5.0.0'
+}
+
+
+
+

It is also recommended to add a direct dependency to liquibase because Spring Boot overrides the one provided by this plugin

+
+
+
+
dependencies {
+   ...
+     implementation 'org.liquibase:liquibase-core:4.19.0'
+}
+
+
+
+

You should also tell Gradle about the migrations folder. If using Grails 4, make sure the configuration below is BEFORE the +dependencies configuration, so that the sourceSets declaration takes effect.

+
+
+
+
sourceSets {
+    main {
+        resources {
+            srcDir 'grails-app/migrations'
+        }
+    }
+}
+
+
+
+

Typical initial workflow

+
+
+

Next you’ll need to create an initial changelog. You can use Liquibase XML or the plugin’s Groovy DSL for individual files. You can even mix and match; Groovy files can include other Groovy files and Liquibase XML files (but XML files can’t include Groovy files).

+
+
+

Depending on the state of your database and code, you have two options; either create a changelog from the database or create it from your domain classes. The decision tends to be based on whether you prefer to design the database and adjust the domain classes to work with it, or to design your domain classes and use Hibernate to create the corresponding database structure.

+
+
+

To create a changelog from the database, use the dbm-generate-changelog script:

+
+
+
+
grails dbm-generate-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-changelog changelog.xml
+
+
+
+

depending on whether you prefer the Groovy DSL or XML. The filename is relative to the changelog base folder, which defaults to grails-app/migrations.

+
+
+ + + + + +
+ + +If you use the XML format (or use a non-default Groovy filename), be sure to change the name of the file in application.groovy so dbm-update and other scripts find the file: +
+
+
+
+
grails.plugin.databasemigration.changelogFileName = 'changelog.xml'
+
+
+
+

Since the database is already correct, run the dbm-changelog-sync script to record that the changes have already been applied:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Running this script is primarily a no-op except that it records the execution(s) in the Liquibase DATABASECHANGELOG table.

+
+
+

To create a changelog from your domain classes, use the dbm-generate-gorm-changelog script:

+
+
+
+
grails dbm-generate-gorm-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-gorm-changelog changelog.xml
+
+
+
+

If you haven’t created the database yet, run the dbm-update script to create the corresponding tables:

+
+
+
+
grails dbm-update
+
+
+
+

or the dbm-changelog-sync script if the database is already in sync with your code:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Source control

+
+
+

Now you can commit the changelog and the corresponding application code to source control. Other developers can then update and synchronize their databases, and start doing migrations themselves.

+
+
+
+
+

3. Configuration

+
+
+

There are a few configuration options for the plugin. All configurations are prefixed with grails.plugin.databasemigration:

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultMeaning

changelogLocation

grails-app/migrations

the folder containing the main changelog file (which can include one or more other files)

changelogFileName

changelog.groovy

the name of the main changelog file

changelogProperties

none

a map of properties to use for property substitution in Groovy DSL changelogs

contexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

dbDocLocation

target/dbdoc

the directory where the output from the dbm-db-doc script is written

dbDocController.enabled

true in dev mode

whether the /dbdoc/ url is accessible at runtime

dropOnStart

false

if true then drops all tables before auto-running migrations (if updateOnStart is true)

updateOnStart

false

if true then changesets from the specified list of names will be run at startup

updateOnStartFileName

none

the file name (relative to changelogLocation) to run at startup if updateOnStart is true

updateOnStartDefaultSchema

none

the default schema to use when running auto-migrate on start

updateOnStartContexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

updateAllOnStart

false

if true then changesets from the specified list of names will be run at startup for all dataSources. Useful for Grails Multitenancy with Multiple Databases (same db schema)

autoMigrateScripts

[RunApp]

the scripts when running auto-migrate. Useful to run auto-migrate during test phase with: [RunApp, TestApp]

excludeObjects

none

A comma-delimited list of database object names to ignore while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

includeObjects

none

A comma-delimited list of database object names to look for while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

databaseChangeLogTableName

databasechangelog

the Liquibase changelog record table name

databaseChangeLogLockTableName

databasechangeloglock

the Liquibase lock table name

+
+ + + + + +
+ + +All the above configs can be used for multiple datasources +
+
+
+

Multiple DataSource Example:

+
+
+

If secondary dataSource named "second" is configured in application.yml

+
+
+
+
dataSource:
+    pooled: true
+    jmxExport: true
+    driverClassName: org.h2.Driver
+    username: sa
+    password:
+    dbCreate: none
+    url: jdbc:h2:file:./multipleFirstDb
+    logSql: true
+    formatSql: true
+dataSources:
+    second:
+        pooled: true
+        jmxExport: true
+        driverClassName: org.h2.Driver
+        username: sa
+        password:
+        dbCreate: none
+        url: jdbc:h2:file:./multipleSecondDb
+
+
+
+

The configuration for this data source would be:

+
+
+
+
grails.plugin.databasemigration.reports.updateOnStart = true
+grails.plugin.databasemigration.reports.changelogFileName = changelog-second.groovy
+
+
+
+

The configuration for all data sources with same db schema would be:

+
+
+
+
grails.plugin.databasemigration.updateAllOnStart = true
+grails.plugin.databasemigration.changelogFileName = changelog.groovy
+
+
+
+
+
+

4. General Usage

+
+
+

After creating the initial changelog, the typical workflow will be along the lines of:

+
+
+
    +
  • +

    make domain class changes that affect the schema

    +
  • +
  • +

    add changes to the changelog for them

    +
  • +
  • +

    backup your database in case something goes wrong

    +
  • +
  • +

    run grails dbm-update to update your development environment (or wherever you’re applying the changes)

    +
  • +
  • +

    check the updated domain class(es) and changelog(s) into source control

    +
  • +
+
+
+ + + + + +
+ + +
+
    +
  1. +

    When running migration scripts on non-development databases, it’s important that you backup the database before running the migration in case anything goes wrong. You could also make a copy of the database and run the script against that, and if there’s a problem the real database will be unaffected.

    +
  2. +
  3. +

    Setting the dbCreate setting to "none" is recommended when executing the dbm migration commands. Otherwise you might run into troubles and the commands could not be executed.

    +
  4. +
+
+
+
+
+

To create the changelog additions, you can either manually create the changes or with the dbm-gorm-diff script (you can also use the dbm-diff script but it’s far less convenient and requires a 2nd temporary database).

+
+
+

You have a few options with dbm-gorm-diff:

+
+
+
    +
  • +

    dbm-gorm-diff will dump to the console if no filename is specified, so you can copy/paste from there

    +
  • +
  • +

    if you include the --add parameter when running the script with a filename it will register an include for the filename in the main changelog for you

    +
  • +
+
+
+

Regardless of which approach you use, be sure to inspect generated changes and adjust as necessary.

+
+
+

4.1. Autorun on start

+
+

Since Liquibase maintains a record of changes that have been applied, you can avoid manually updating the database by taking advantage of the plugin’s auto-run feature. By default this is disabled, but you can enable it by adding

+
+
+
+
grails.plugin.databasemigration.updateOnStart = true
+
+
+
+

to application.groovy. In addition you must specify the file containing changes; specify the name using the updateOnStartFileName property, e.g.:

+
+
+
+
grails.plugin.databasemigration.updateOnStartFileName = 'changelog.groovy'
+
+
+
+

Since changelogs can contain changelogs you’ll most often just specify the root changelog, changelog.groovy by convention. Any changes that haven’t been executed (in the specified file(s) or files included by them) will be run in the order specified.

+
+
+

You may optionally limit the plugin’s auto-run feature to run only specific contexts. If this configuration parameter is empty or omitted, all contexts will be run.

+
+
+
+
grails.plugin.databasemigration.updateOnStartContexts = ['context1,context2']
+
+
+
+

You can be notified when migration are run (for example to do some work before and/or after the migrations execute) by registering a "callback" class as a Spring bean. The class can have any name and package and doesn’t have to implement any interface since its methods will be called using Groovy duck-typing.

+
+
+

The bean name is "migrationCallbacks" and there are currently three callback methods supported (all are optional):

+
+
+
    +
  • +

    beforeStartMigration will be called (if it exists) for each datasource before any migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
  • +

    onStartMigration will be called (if it exists) for each migration script; the method will be passed three arguments, the Liquibase Database, the Liquibase instance, and the changelog file name

    +
  • +
  • +

    afterMigrations will be called (if it exists) for each datasource after all migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
+
+
+

An example class will look like this:

+
+
+
+
package com.mycompany.myapp
+
+import liquibase.Liquibase
+import liquibase.database.Database
+
+class MigrationCallbacks {
+
+   void beforeStartMigration(Database Database) {
+      ...
+   }
+
+   void onStartMigration(Database database, Liquibase liquibase, String changelogName) {
+      ...
+   }
+
+   void afterMigrations(Database Database) {
+      ...
+   }
+}
+
+
+
+

Register it in resources.groovy:

+
+
+
+
import com.mycompany.myapp.MigrationCallbacks
+
+beans = {
+   migrationCallbacks(MigrationCallbacks)
+}
+
+
+
+
+
+
+

5. Groovy Changes

+
+
+

In addition to the built-in Liquibase changes (see the documentation for what’s available) you can also make database changes using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsChange tag name and are contained in a changeSet tag like standard built-in tags.

+
+
+

There are four supported inner tags and two callable methods (to override the default confirmation message and checksum value).

+
+
+

5.1. General format

+
+

This is the general format of a Groovy-based change; all inner tags and methods are optional:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      grailsChange {
+         init {
+             // arbitrary initialization code; note that no
+             // database or connection is available
+         }
+
+         validate {
+            // can call warn(String message) to log a warning
+            // or error(String message) to stop processing
+         }
+
+         change {
+            // arbitrary code; make changes directly and/or return a
+            // SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'change confirmation message'
+         }
+
+         rollback {
+            // arbitrary code; make rollback changes directly and/or
+            // return a SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'rollback confirmation message'
+         }
+
+         confirm 'confirmation message'
+
+         checkSum 'override value for checksum'
+      }
+
+   }
+}
+
+
+
+
+

5.2. Available variables

+
+

These variables are available throughout the change closure:

+
+
+
    +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
+
+
+

The change and rollback closures also have the following available:

+
+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
+
+
+

init

+
+
+

This is where any optional initialization should happen. You can’t access the database from this closure.

+
+
+

validate

+
+
+

If there are any necessary validation checks before executing changes or rollbacks they should be done here. You can log warnings by calling warn(String message) and stop processing by calling error(String message). It may make more sense to use one or more preConditions instead of directly validating here.

+
+
+

change

+
+
+

All migration changes are done in the change closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

rollback

+
+
+

All rollback changes are done in the rollback closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

confirm

+
+
+

The confirm(String message) method is used to specify the confirmation message to be shown. The default is "Executed GrailsChange" and it can be overridden in the change or rollback closures to allow phase-specific messages or outside of both closures to use the same message for the update and rollback phase.

+
+
+

checkSum

+
+
+

The checksum for the change will be generated automatically, but if you want to override the value that gets hashed you can specify it with the checkSum(String value) method.

+
+
+
+
+
+

6. Groovy Preconditions

+
+
+

In addition to the built-in Liquibase preconditions (see the documentation for what’s available) you can also specify preconditions using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsPrecondition tag name and are contained in the databaseChangeLog tag or in a changeSet tag like standard built-in tags.

+
+
+

6.1. General format

+
+

This is the general format of a Groovy-based precondition:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      preConditions {
+
+         grailsPrecondition {
+
+            check {
+
+               // use an assertion
+               assert x == x
+
+               // use an assertion with an error message
+               assert y == y : 'value cannot be 237'
+
+               // call the fail method
+               if (x != x) {
+                  fail 'x != x'
+               }
+
+               // throw an exception (the fail method is preferred)
+               if (y != y) {
+                  throw new RuntimeException('y != y')
+               }
+            }
+
+         }
+
+      }
+   }
+}
+
+
+
+

As you can see there are a few ways to indicate that a precondition wasn’t met:

+
+
+
    +
  • +

    use a simple assertion

    +
  • +
  • +

    use an assertion with a message

    +
  • +
  • +

    call the fail(String message) method (throws a PreconditionFailedException)

    +
  • +
  • +

    throw an exception (shouldn’t be necessary - use assert or fail() instead)

    +
  • +
+
+
+
+

6.2. Available variables

+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    changeLog - the current Liquibase DatabaseChangeLog instance

    +
  • +
+
+
+
+

6.3. Utility methods

+
+
    +
  • +

    createDatabaseSnapshotGenerator() - retrieves the DatabaseSnapshotGenerator for the current Database

    +
  • +
  • +

    createDatabaseSnapshot(String schemaName = null) - creates a DatabaseSnapshot for the current Database (and schema if specified)

    +
  • +
+
+
+
+
+
+

7. GORM Support

+
+
+

The plugin’s support for GORM is one feature that differentiates it from using Liquibase directly. Typically, when using Liquibase you make changes to a database yourself, and then create changesets manually, or use a diff script to compare your updated database to one that hasn’t been updated yet. This is a decent amount of work and is rather error-prone. It’s easy to forget some changes that aren’t required but help performance, for example creating an index on a foreign key when using MySQL.

+
+
+

create-drop, create, and update

+
+
+

On the other end of the spectrum, Hibernate’s create-drop mode (or create) will create a database that matches your domain model, but it’s destructive since all previous data is lost when it runs. This works well in the very early stages of development but gets frustrating quickly. Unfortunately Hibernate’s update mode seems like a good compromise since it only makes changes to your existing schema, but it’s very limited in what it will do. It’s very pessimistic and won’t make any changes that could lose data. So it will add new tables and columns, but won’t drop anything. If you remove a not-null domain class property you’ll find you can’t insert anymore since the column is still there. And it will create not-null columns as nullable since otherwise existing data would be invalid. It won’t even widen a column e.g. from VARCHAR(100) to VARCHAR(200).

+
+
+

dbm-gorm-diff

+
+
+

The plugin provides a script that will compare your GORM current domain model with a database that you specify, and the result is a Liquibase changeset - dbm-gorm-diff. This is the same changeset you would get if you exported your domain model to a scratch database and diffed it with the other database, but it’s more convenient.

+
+
+

So a good workflow would be:

+
+
+
    +
  • +

    make whatever domain class changes you need (add new ones, delete unneeded ones, add/change/remove properties, etc.)

    +
  • +
  • +

    once your tests pass, and you’re ready to commit your changes to source control, run the script to generate the changeset that will bring your database back in line with your code

    +
  • +
  • +

    add the changeset to an existing changelog file, or use the include tag to include the whole file

    +
  • +
  • +

    run the changeset on your functional test database

    +
  • +
  • +

    assuming your functional tests pass, check everything in as one commit

    +
  • +
  • +

    the other members of your team will get both the code and database changes when they next update, and will know to run the update script to sync their database with the latest code

    +
  • +
  • +

    once you’re ready to deploy to QA for testing (or staging or production), you can run all the un-run changes since the last deployment

    +
  • +
+
+
+

dbm-generate-gorm-changelog

+
+
+

The dbm-generate-gorm-changelog script is useful for when you want to switch from create-drop mode to doing proper migrations. It’s not very useful if you already have a database that’s in sync with your code, since you can just use the dbm-generate-changelog script that creates a changelog from your database.

+
+
+
+
+

8. DbDoc Controller

+
+
+

You can use the dbm-db-doc script to generate static HTML files to view changelog information, but another option is to use the DbDocController at runtime. By default this controller is mapped to /appname/dbdoc/ but this can be customized with UrlMappings like any controller.

+
+
+

You probably don’t want to expose this information to all of your application’s users so by default the controller is only enabled in the development environment. But you can enable or disable it for any environment in application.groovy with the dbDocController.enabled config option. For example to enable for all environments (be sure to guard the URL with a security plugin in prod):

+
+
+
+
grails.plugin.databasemigration.dbDocController.enabled = true
+
+
+
+

or to enable in the production environment:

+
+
+
+
environments {
+   production {
+      grails.plugin.databasemigration.dbDocController.enabled = true
+   }
+   ...
+}
+
+
+
+
+
+

9. Reference

+
+
+

9.1. Diff Scripts

+
+

9.1.1. dbm-diff

+
+
Purpose
+
+

Compares two databases and creates a changelog that will make the changes required to bring them into sync.

+
+
+
+
Description
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev) and another configured datasource in application.[yml|groovy].

+
+
+

If a filename parameter is specified then the output will be written to the named file, otherwise it will be written to the console. If the filename ends with .groovy a Groovy DSL file will be created, otherwise a standard XML file will be created.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-diff <<otherEnv>> <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    otherEnv - The name of the environment to compare to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - If specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.1.2. dbm-gorm-diff

+
+
Purpose
+
+

Diffs GORM classes against a database and generates a changelog XML or Groovy DSL file.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Similar to dbm-diff but diffs the current configuration based on the application’s domain classes with the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Doesn’t modify any existing files - you need to manually merge the output into the changeset along with any necessary modifications.

+
+
+

You can configure database objects to be ignored by this script - either in the GORM classes or in the target database. For example you may want domain objects that are transient, or you may have externally-managed tables, keys, etc. that you want left alone by the diff script. The configuration name for these ignored objects is grails.plugin.databasemigration.ignoredObjects, whose value is a list of strings.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-gorm-diff <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-gorm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.2. Documentation Scripts

+
+

9.2.1. dbm-db-doc

+
+
Purpose
+
+

Generates Javadoc-like documentation based on current database and change log.

+
+
+
+
Description
+
+

Writes to the folder specified by the destination parameter, or to the grails.plugin.databasemigration.dbDocLocation configuration option (defaults to target/dbdoc).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-db-doc <<destination>> --contexts=<<contexts>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    destination - The path to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-db-doc "--contexts=<<contexts>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.3. Maintenance Scripts

+
+

9.3.1. dbm-add-migration

+
+
Purpose
+
+

Adds a template migration file to your project and to the changelog file.

+
+
+
+
Description
+
+

This script provides a template in which to place your migration behaviour code, whether +Grails code or raw SQL.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-add-migration <<migrationName>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    migrationName - The name of the migration - will be used as a filename and the default migration id.

    +
  • +
+
+
+ + + + + +
+ + +This script only supports .groovy-style migrations at the moment. +
+
+
+
+
+

9.3.2. dbm-changelog-sync-sql

+
+
Purpose
+
+

Writes the SQL that will mark all changes as executed in the database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates the SQL statements for the Liquibase DATABASECHANGELOG control table.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.3. dbm-changelog-sync

+
+
Purpose
+
+

Mark all changes as executed in the database.

+
+
+
+
Description
+
+

Registers all changesets as having been run in the Liquibase control table. This is useful when the changes have already been applied, for example if you’ve just created a changelog from your database using the dbm-generate-changelog script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.4. dbm-changelog-to-groovy

+
+
Purpose
+
+

Converts a Liquibase XML changelog file to a Groovy DSL file.

+
+
+
+
Description
+
+

If the Groovy file name isn’t specified the name and location will be the same as the original XML file with a .groovy extension.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-to-groovy [xml_file_name] [groovy_file_name]
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    xml_file_name - The name and path of the XML file to convert

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    groovy_file_name - The name and path of the Groovy file

    +
  • +
+
+
+
+
+

9.3.5. dbm-clear-checksums

+
+
Purpose
+
+

Removes current checksums from database. On next run checksums will be recomputed.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-clear-checksums --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-clear-checksums  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.6. dbm-create-changelog

+
+
Purpose
+
+

Creates an empty changelog file.

+
+
+
+
Description
+
+

Creates a new empty file instead of generating the file from the database (using dbm-generate-changelog) or your GORM classes (using dbm-generate-gorm-changelog).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-create-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource creating a file named changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-create-changelog "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.7. dbm-drop-all

+
+
Purpose
+
+

Drops all database objects owned by the user.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-drop-all <<schemaNames>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    schemaNames - A comma-delimited list of schema names to use

    +
  • +
  • +

    defaultSchema - The default schema name to use if the schemaNames parameter isn’t present

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-drop-all "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.8. dbm-list-locks

+
+
Purpose
+
+

Lists who currently has locks on the database changelog to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-locks <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-list-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.9. dbm-list-tags

+
+
Purpose
+
+

Lists the tags in the current database.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-tags --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+

9.3.10. dbm-mark-next-changeset-ran

+
+
Purpose
+
+

Mark the next change set as executed in the database.

+
+
+
+
Description
+
+

If a filename is specified, writes the SQL that will perform the update that file but doesn’t update.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-mark-next-changeset-ran <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-mark-next-changeset-ran "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.11. dbm-register-changelog

+
+
Purpose
+
+

Adds an include for the specified changelog to the main changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-register-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the changelog file to include.

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource using changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.12. dbm-release-locks

+
+
Purpose
+
+

Releases all locks on the database changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-release-locks --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-release-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.13. dbm-status

+
+
Purpose
+
+

Outputs count or list of unrun change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-status <<filename>> --verbose=<<verbose>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    verbose - If true (the default) the changesets are listed; if false only the count is displayed

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the verbose, contexts, defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-status "--verbose=<<verbose>>" "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.14. dbm-tag

+
+
Purpose
+
+

Adds a tag to mark the current database state.

+
+
+
+
Description
+
+

Useful for future rollbacks to a specific tag (e.g. using the dbm-rollback script).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-tag <<tagName>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.15. dbm-validate

+
+
Purpose
+
+

Checks the changelog for errors.

+
+
+
+
Description
+
+

Prints any validation messages to the console.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-validate --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-validate "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.4. Rollback Scripts

+
+

9.4.1. dbm-future-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the current state after the changes in the changeslog have been applied to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-future-rollback-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-future-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.2. dbm-generate-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from the database.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-changelog <<filename>> --diffTypes=<<diffTypes>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    diffTypes - A comma-delimited list of change types to include - see the documentation for what types are available

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the diffTypes, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-changelog "--diffTypes=<<diffTypes>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.3. dbm-generate-gorm-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from current GORM classes.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in DataSource.groovy for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-gorm-changelog <<filename>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-gorm-changelog  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.4. dbm-rollback-count-sql

+
+
Purpose
+
+

Writes the SQL to roll back the specified number of change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.5. dbm-rollback-count

+
+
Purpose
+
+

Rolls back the specified number of change sets

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.6. dbm-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in when the tag was applied to STDOUT or a file.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-sql <<tagName>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.7. dbm-rollback-to-date-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in at the given date/time to STDOUT or a file.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date-sql <<date>> <<time>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], +the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.8. dbm-rollback-to-date

+
+
Purpose
+
+

Rolls back the database to the state it was in at the given date/time.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date <<date>> <<time>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.9. dbm-rollback

+
+
Purpose
+
+

Rolls back the database to the state it was in when the tag was applied.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback <<tagName>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.5. Update Scripts

+
+

9.5.1. dbm-previous-changeset-sql

+
+
Purpose
+
+

Writes the SQL to STDOUT or a file for the specified number of previous changesets whether they have run or not.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-previous-changeset-sql <<number>> <<filename>> --skip=<<skip>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    skip - The number of changesets to skip if you want to exclude recent ones

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+

9.5.2. dbm-update-count-sql

+
+
Purpose
+
+

Writes the SQL that will partially update a database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.5.3. dbm-update-count

+
+
Purpose
+
+

Partially updates a database.

+
+
+
+
Description
+
+

Runs the specifed number of un-run changesets from the Changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.5.4. dbm-update-sql

+
+
Purpose
+
+

Writes the SQL that will update the database to the current version to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.5.5. dbm-update

+
+
Purpose
+
+

Updates a database to the current version.

+
+
+
+
Description
+
+

Runs all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/introduction.html b/5.0.0/introduction.html new file mode 100644 index 00000000..bb29852d --- /dev/null +++ b/5.0.0/introduction.html @@ -0,0 +1,487 @@ + + + + + + + +Introduction to the Database Migration Plugin + + + + + + +
+
+

Introduction to the Database Migration Plugin

+
+
+

The Database Migration plugin helps you manage database changes while developing Grails applications. The plugin uses the Liquibase library.

+
+
+

Using this plugin (and Liquibase in general) adds some structure and process to managing database changes. It will help avoid inconsistencies, communication issues, and other problems with ad-hoc approaches.

+
+
+

Database migrations are represented in text form, either using a Groovy DSL or native Liquibase XML, in one or more changelog files. This approach makes it natural to maintain the changelog files in source control and also works well with branches. Changelog files can include other changelog files, so often developers create hierarchical files organized with various schemes. One popular approach is to have a root changelog named changlog.groovy (or changelog.xml) and to include a changelog per feature/branch that includes multiple smaller changelogs. Once the feature is finished and merged into the main development tree/trunk the changelog files can either stay as they are or be merged into one large file. Use whatever approach makes sense for your applications, but keep in mind that there are many options available for changelog management.

+
+
+

Individual changes have an ID that should be globally unique, although they also include the username of the user making the change, making the combination of ID and username unique (although technically the ID, username, and changelog location are the "unique key").

+
+
+

As you make changes in your code (typically domain classes) that require changes in the database, you add a new change set to the changelog. Commit the code changes along with the changelog additions, and the other developers on your team will get both when they update from source control. Once they apply the new changes their code and development database will be in sync with your changes. Likewise when you deploy to a QA, a staging server, or production, you’ll run the un-run changes that correspond to the code updates to being that environment’s database in sync. Liquibase keeps track of previously executed changes so there’s no need to think about what has and hasn’t been run yet.

+
+
+

Scripts

+
+
+

Your primary interaction with the plugin will be using the provided scripts. For the most part these correspond to the many Liquibase commands that are typically executed directly from the commandline or with its Ant targets, but there are also a few Grails-specific scripts that take advantage of the information available from the GORM mappings.

+
+
+

All the scripts start with dbm- to ensure that they’re unique and don’t clash with scripts from Grails or other plugins.

+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Diff Scripts/dbm-diff.html b/5.0.0/ref/Diff Scripts/dbm-diff.html new file mode 100644 index 00000000..37b15178 --- /dev/null +++ b/5.0.0/ref/Diff Scripts/dbm-diff.html @@ -0,0 +1,550 @@ + + + + + + + +dbm-diff + + + + + + +
+
+

dbm-diff

+
+
Purpose
+
+

Compares two databases and creates a changelog that will make the changes required to bring them into sync.

+
+
+
+
Description
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev) and another configured datasource in application.[yml|groovy].

+
+
+

If a filename parameter is specified then the output will be written to the named file, otherwise it will be written to the console. If the filename ends with .groovy a Groovy DSL file will be created, otherwise a standard XML file will be created.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-diff <<otherEnv>> <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    otherEnv - The name of the environment to compare to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - If specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Diff Scripts/dbm-gorm-diff.html b/5.0.0/ref/Diff Scripts/dbm-gorm-diff.html new file mode 100644 index 00000000..0cd75ce8 --- /dev/null +++ b/5.0.0/ref/Diff Scripts/dbm-gorm-diff.html @@ -0,0 +1,549 @@ + + + + + + + +dbm-gorm-diff + + + + + + +
+
+

dbm-gorm-diff

+
+
Purpose
+
+

Diffs GORM classes against a database and generates a changelog XML or Groovy DSL file.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Similar to dbm-diff but diffs the current configuration based on the application’s domain classes with the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Doesn’t modify any existing files - you need to manually merge the output into the changeset along with any necessary modifications.

+
+
+

You can configure database objects to be ignored by this script - either in the GORM classes or in the target database. For example you may want domain objects that are transient, or you may have externally-managed tables, keys, etc. that you want left alone by the diff script. The configuration name for these ignored objects is grails.plugin.databasemigration.ignoredObjects, whose value is a list of strings.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-gorm-diff <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-gorm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Documentation Scripts/dbm-db-doc.html b/5.0.0/ref/Documentation Scripts/dbm-db-doc.html new file mode 100644 index 00000000..d6f74812 --- /dev/null +++ b/5.0.0/ref/Documentation Scripts/dbm-db-doc.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-db-doc + + + + + + +
+
+

dbm-db-doc

+
+
Purpose
+
+

Generates Javadoc-like documentation based on current database and change log.

+
+
+
+
Description
+
+

Writes to the folder specified by the destination parameter, or to the grails.plugin.databasemigration.dbDocLocation configuration option (defaults to target/dbdoc).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-db-doc <<destination>> --contexts=<<contexts>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    destination - The path to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-db-doc "--contexts=<<contexts>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-add-migration.html b/5.0.0/ref/Maintenance Scripts/dbm-add-migration.html new file mode 100644 index 00000000..27a23a69 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-add-migration.html @@ -0,0 +1,504 @@ + + + + + + + +dbm-add-migration + + + + + + +
+
+

dbm-add-migration

+
+
Purpose
+
+

Adds a template migration file to your project and to the changelog file.

+
+
+
+
Description
+
+

This script provides a template in which to place your migration behaviour code, whether +Grails code or raw SQL.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-add-migration <<migrationName>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    migrationName - The name of the migration - will be used as a filename and the default migration id.

    +
  • +
+
+
+ + + + + +
+ + +This script only supports .groovy-style migrations at the moment. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-changelog-sync-sql.html b/5.0.0/ref/Maintenance Scripts/dbm-changelog-sync-sql.html new file mode 100644 index 00000000..2b4a7a71 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-changelog-sync-sql.html @@ -0,0 +1,538 @@ + + + + + + + +dbm-changelog-sync-sql + + + + + + +
+
+

dbm-changelog-sync-sql

+
+
Purpose
+
+

Writes the SQL that will mark all changes as executed in the database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates the SQL statements for the Liquibase DATABASECHANGELOG control table.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-changelog-sync.html b/5.0.0/ref/Maintenance Scripts/dbm-changelog-sync.html new file mode 100644 index 00000000..a329a176 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-changelog-sync.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-changelog-sync + + + + + + +
+
+

dbm-changelog-sync

+
+
Purpose
+
+

Mark all changes as executed in the database.

+
+
+
+
Description
+
+

Registers all changesets as having been run in the Liquibase control table. This is useful when the changes have already been applied, for example if you’ve just created a changelog from your database using the dbm-generate-changelog script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-changelog-to-groovy.html b/5.0.0/ref/Maintenance Scripts/dbm-changelog-to-groovy.html new file mode 100644 index 00000000..361da5bc --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-changelog-to-groovy.html @@ -0,0 +1,501 @@ + + + + + + + +dbm-changelog-to-groovy + + + + + + +
+
+

dbm-changelog-to-groovy

+
+
Purpose
+
+

Converts a Liquibase XML changelog file to a Groovy DSL file.

+
+
+
+
Description
+
+

If the Groovy file name isn’t specified the name and location will be the same as the original XML file with a .groovy extension.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-to-groovy [xml_file_name] [groovy_file_name]
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    xml_file_name - The name and path of the XML file to convert

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    groovy_file_name - The name and path of the Groovy file

    +
  • +
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-clear-checksums.html b/5.0.0/ref/Maintenance Scripts/dbm-clear-checksums.html new file mode 100644 index 00000000..42b2d692 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-clear-checksums.html @@ -0,0 +1,525 @@ + + + + + + + +dbm-clear-checksums + + + + + + +
+
+

dbm-clear-checksums

+
+
Purpose
+
+

Removes current checksums from database. On next run checksums will be recomputed.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-clear-checksums --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-clear-checksums  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-create-changelog.html b/5.0.0/ref/Maintenance Scripts/dbm-create-changelog.html new file mode 100644 index 00000000..11fdb7f6 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-create-changelog.html @@ -0,0 +1,535 @@ + + + + + + + +dbm-create-changelog + + + + + + +
+
+

dbm-create-changelog

+
+
Purpose
+
+

Creates an empty changelog file.

+
+
+
+
Description
+
+

Creates a new empty file instead of generating the file from the database (using dbm-generate-changelog) or your GORM classes (using dbm-generate-gorm-changelog).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-create-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource creating a file named changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-create-changelog "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-drop-all.html b/5.0.0/ref/Maintenance Scripts/dbm-drop-all.html new file mode 100644 index 00000000..c06824fc --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-drop-all.html @@ -0,0 +1,531 @@ + + + + + + + +dbm-drop-all + + + + + + +
+
+

dbm-drop-all

+
+
Purpose
+
+

Drops all database objects owned by the user.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-drop-all <<schemaNames>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    schemaNames - A comma-delimited list of schema names to use

    +
  • +
  • +

    defaultSchema - The default schema name to use if the schemaNames parameter isn’t present

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-drop-all "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-list-locks.html b/5.0.0/ref/Maintenance Scripts/dbm-list-locks.html new file mode 100644 index 00000000..84829ba8 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-list-locks.html @@ -0,0 +1,531 @@ + + + + + + + +dbm-list-locks + + + + + + +
+
+

dbm-list-locks

+
+
Purpose
+
+

Lists who currently has locks on the database changelog to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-locks <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-list-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-list-tags.html b/5.0.0/ref/Maintenance Scripts/dbm-list-tags.html new file mode 100644 index 00000000..b4263cb2 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-list-tags.html @@ -0,0 +1,511 @@ + + + + + + + +dbm-list-tags + + + + + + +
+
+

dbm-list-tags

+
+
Purpose
+
+

Lists the tags in the current database.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-tags --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-mark-next-changeset-ran.html b/5.0.0/ref/Maintenance Scripts/dbm-mark-next-changeset-ran.html new file mode 100644 index 00000000..77f12cf6 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-mark-next-changeset-ran.html @@ -0,0 +1,537 @@ + + + + + + + +dbm-mark-next-changeset-ran + + + + + + +
+
+

dbm-mark-next-changeset-ran

+
+
Purpose
+
+

Mark the next change set as executed in the database.

+
+
+
+
Description
+
+

If a filename is specified, writes the SQL that will perform the update that file but doesn’t update.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-mark-next-changeset-ran <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-mark-next-changeset-ran "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-register-changelog.html b/5.0.0/ref/Maintenance Scripts/dbm-register-changelog.html new file mode 100644 index 00000000..c1a3162e --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-register-changelog.html @@ -0,0 +1,533 @@ + + + + + + + +dbm-register-changelog + + + + + + +
+
+

dbm-register-changelog

+
+
Purpose
+
+

Adds an include for the specified changelog to the main changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-register-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the changelog file to include.

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource using changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-release-locks.html b/5.0.0/ref/Maintenance Scripts/dbm-release-locks.html new file mode 100644 index 00000000..aa55bc1d --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-release-locks.html @@ -0,0 +1,528 @@ + + + + + + + +dbm-release-locks + + + + + + +
+
+

dbm-release-locks

+
+
Purpose
+
+

Releases all locks on the database changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-release-locks --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-release-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-status.html b/5.0.0/ref/Maintenance Scripts/dbm-status.html new file mode 100644 index 00000000..90f8107d --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-status.html @@ -0,0 +1,537 @@ + + + + + + + +dbm-status + + + + + + +
+
+

dbm-status

+
+
Purpose
+
+

Outputs count or list of unrun change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-status <<filename>> --verbose=<<verbose>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    verbose - If true (the default) the changesets are listed; if false only the count is displayed

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the verbose, contexts, defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-status "--verbose=<<verbose>>" "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-tag.html b/5.0.0/ref/Maintenance Scripts/dbm-tag.html new file mode 100644 index 00000000..cf7b3d7b --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-tag.html @@ -0,0 +1,538 @@ + + + + + + + +dbm-tag + + + + + + +
+
+

dbm-tag

+
+
Purpose
+
+

Adds a tag to mark the current database state.

+
+
+
+
Description
+
+

Useful for future rollbacks to a specific tag (e.g. using the dbm-rollback script).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-tag <<tagName>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Maintenance Scripts/dbm-validate.html b/5.0.0/ref/Maintenance Scripts/dbm-validate.html new file mode 100644 index 00000000..f1e3f342 --- /dev/null +++ b/5.0.0/ref/Maintenance Scripts/dbm-validate.html @@ -0,0 +1,528 @@ + + + + + + + +dbm-validate + + + + + + +
+
+

dbm-validate

+
+
Purpose
+
+

Checks the changelog for errors.

+
+
+
+
Description
+
+

Prints any validation messages to the console.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-validate --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-validate "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-future-rollback-sql.html b/5.0.0/ref/Rollback Scripts/dbm-future-rollback-sql.html new file mode 100644 index 00000000..d4ae1d51 --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-future-rollback-sql.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-future-rollback-sql + + + + + + +
+
+

dbm-future-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the current state after the changes in the changeslog have been applied to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-future-rollback-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-future-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-generate-changelog.html b/5.0.0/ref/Rollback Scripts/dbm-generate-changelog.html new file mode 100644 index 00000000..99be89cf --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-generate-changelog.html @@ -0,0 +1,546 @@ + + + + + + + +dbm-generate-changelog + + + + + + +
+
+

dbm-generate-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from the database.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-changelog <<filename>> --diffTypes=<<diffTypes>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    diffTypes - A comma-delimited list of change types to include - see the documentation for what types are available

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the diffTypes, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-changelog "--diffTypes=<<diffTypes>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-generate-gorm-changelog.html b/5.0.0/ref/Rollback Scripts/dbm-generate-gorm-changelog.html new file mode 100644 index 00000000..4259a8e2 --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-generate-gorm-changelog.html @@ -0,0 +1,540 @@ + + + + + + + +dbm-generate-gorm-changelog + + + + + + +
+
+

dbm-generate-gorm-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from current GORM classes.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in DataSource.groovy for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-gorm-changelog <<filename>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-gorm-changelog  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-rollback-count-sql.html b/5.0.0/ref/Rollback Scripts/dbm-rollback-count-sql.html new file mode 100644 index 00000000..04deb2a9 --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-rollback-count-sql.html @@ -0,0 +1,541 @@ + + + + + + + +dbm-rollback-count-sql + + + + + + +
+
+

dbm-rollback-count-sql

+
+
Purpose
+
+

Writes the SQL to roll back the specified number of change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-rollback-count.html b/5.0.0/ref/Rollback Scripts/dbm-rollback-count.html new file mode 100644 index 00000000..9a0b6eeb --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-rollback-count.html @@ -0,0 +1,538 @@ + + + + + + + +dbm-rollback-count + + + + + + +
+
+

dbm-rollback-count

+
+
Purpose
+
+

Rolls back the specified number of change sets

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-rollback-sql.html b/5.0.0/ref/Rollback Scripts/dbm-rollback-sql.html new file mode 100644 index 00000000..fa4e2adb --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-rollback-sql.html @@ -0,0 +1,544 @@ + + + + + + + +dbm-rollback-sql + + + + + + +
+
+

dbm-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in when the tag was applied to STDOUT or a file.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-sql <<tagName>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-rollback-to-date-sql.html b/5.0.0/ref/Rollback Scripts/dbm-rollback-to-date-sql.html new file mode 100644 index 00000000..275498dc --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-rollback-to-date-sql.html @@ -0,0 +1,548 @@ + + + + + + + +dbm-rollback-to-date-sql + + + + + + +
+
+

dbm-rollback-to-date-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in at the given date/time to STDOUT or a file.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date-sql <<date>> <<time>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], +the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-rollback-to-date.html b/5.0.0/ref/Rollback Scripts/dbm-rollback-to-date.html new file mode 100644 index 00000000..df71af1d --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-rollback-to-date.html @@ -0,0 +1,544 @@ + + + + + + + +dbm-rollback-to-date + + + + + + +
+
+

dbm-rollback-to-date

+
+
Purpose
+
+

Rolls back the database to the state it was in at the given date/time.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date <<date>> <<time>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Rollback Scripts/dbm-rollback.html b/5.0.0/ref/Rollback Scripts/dbm-rollback.html new file mode 100644 index 00000000..66b0a563 --- /dev/null +++ b/5.0.0/ref/Rollback Scripts/dbm-rollback.html @@ -0,0 +1,541 @@ + + + + + + + +dbm-rollback + + + + + + +
+
+

dbm-rollback

+
+
Purpose
+
+

Rolls back the database to the state it was in when the tag was applied.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback <<tagName>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Update Scripts/dbm-previous-changeset-sql.html b/5.0.0/ref/Update Scripts/dbm-previous-changeset-sql.html new file mode 100644 index 00000000..9c0058e0 --- /dev/null +++ b/5.0.0/ref/Update Scripts/dbm-previous-changeset-sql.html @@ -0,0 +1,527 @@ + + + + + + + +dbm-previous-changeset-sql + + + + + + +
+
+

dbm-previous-changeset-sql

+
+
Purpose
+
+

Writes the SQL to STDOUT or a file for the specified number of previous changesets whether they have run or not.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-previous-changeset-sql <<number>> <<filename>> --skip=<<skip>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    skip - The number of changesets to skip if you want to exclude recent ones

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Update Scripts/dbm-update-count-sql.html b/5.0.0/ref/Update Scripts/dbm-update-count-sql.html new file mode 100644 index 00000000..f56831fa --- /dev/null +++ b/5.0.0/ref/Update Scripts/dbm-update-count-sql.html @@ -0,0 +1,547 @@ + + + + + + + +dbm-update-count-sql + + + + + + +
+
+

dbm-update-count-sql

+
+
Purpose
+
+

Writes the SQL that will partially update a database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Update Scripts/dbm-update-count.html b/5.0.0/ref/Update Scripts/dbm-update-count.html new file mode 100644 index 00000000..cbd74f1a --- /dev/null +++ b/5.0.0/ref/Update Scripts/dbm-update-count.html @@ -0,0 +1,541 @@ + + + + + + + +dbm-update-count + + + + + + +
+
+

dbm-update-count

+
+
Purpose
+
+

Partially updates a database.

+
+
+
+
Description
+
+

Runs the specifed number of un-run changesets from the Changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Update Scripts/dbm-update-sql.html b/5.0.0/ref/Update Scripts/dbm-update-sql.html new file mode 100644 index 00000000..dfc8555b --- /dev/null +++ b/5.0.0/ref/Update Scripts/dbm-update-sql.html @@ -0,0 +1,540 @@ + + + + + + + +dbm-update-sql + + + + + + +
+
+

dbm-update-sql

+
+
Purpose
+
+

Writes the SQL that will update the database to the current version to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.0/ref/Update Scripts/dbm-update.html b/5.0.0/ref/Update Scripts/dbm-update.html new file mode 100644 index 00000000..05ba1f5f --- /dev/null +++ b/5.0.0/ref/Update Scripts/dbm-update.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-update + + + + + + +
+
+

dbm-update

+
+
Purpose
+
+

Updates a database to the current version.

+
+
+
+
Description
+
+

Runs all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/api/allclasses-frame.html b/5.0.x/api/allclasses-frame.html new file mode 100644 index 00000000..acb08022 --- /dev/null +++ b/5.0.x/api/allclasses-frame.html @@ -0,0 +1,63 @@ + + + + +All Classes + + + + + + + +

All Classes

+
+ +
+ + diff --git a/5.0.x/api/deprecated-list.html b/5.0.x/api/deprecated-list.html new file mode 100644 index 00000000..6d06f5f2 --- /dev/null +++ b/5.0.x/api/deprecated-list.html @@ -0,0 +1,106 @@ + + + + + + + + Deprecated API (database-migration 5.0.0 API) + + + + + + + + + + +
+ + + + + +
+ + +
+

Deprecated API

+

Contents

+ +
+
+ + +
+ +
+ + + + + +
+ + + + + diff --git a/5.0.x/api/groovy.ico b/5.0.x/api/groovy.ico new file mode 100644 index 00000000..e69de29b diff --git a/5.0.x/api/help-doc.html b/5.0.x/api/help-doc.html new file mode 100644 index 00000000..75082089 --- /dev/null +++ b/5.0.x/api/help-doc.html @@ -0,0 +1,196 @@ + + + + + + + + + API Help (database-migration 5.0.0 API) + + + + + + + + + +
+ + + + + +
+ + + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+ + This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + +
+ + + + diff --git a/5.0.x/api/index-all.html b/5.0.x/api/index-all.html new file mode 100644 index 00000000..088f1d5b --- /dev/null +++ b/5.0.x/api/index-all.html @@ -0,0 +1,833 @@ + + + + + + + + Index (database-migration 5.0.0 API) + + + + + + + + +
+ + + + + +
+ + +
+ +A + +B + +C + +D + +E + +F + +G + +H + +I + +J + +K + +L + +M + +N + +O + +P + +Q + +R + +S + +T + +U + +V + +W + +X + +Y + +Z + +_ + + + + +

A

+
+ +
allStatements - Property in GroovyChange +
+
append(liquibase.changelog.ChangeSet, java.io.File) - Method in GroovyChangeLogSerializer +
+
appendAttrs(java.lang.StringBuilder, groovy.util.Node, java.lang.String) - Method in ChangelogXml2Groovy +
+
appendToChangeLog(java.io.File, java.io.File) - Method in DatabaseMigrationCommand +
+
appendWithIndent(int, java.lang.StringBuilder, java.lang.String) - Method in ChangelogXml2Groovy +
+
applicationContext - Property in ApplicationContextDatabaseMigrationCommand +
+
applicationContext - Property in DatabaseChangeLogBuilder +
+
applicationContext - Property in DatabaseMigrationTransactionManager +
+
applicationContext - Property in GroovyChangeLogParser +
+
ApplicationContextDatabaseMigrationCommand - Trait in org.grails.plugins.databasemigration.command +
+
author - Property in DatabaseMigrationGrailsPlugin +
+
authorEmail - Property in DatabaseMigrationGrailsPlugin +
+
+ + + +

B

+
+ +
+ + + +

C

+
+ +
changeClosure - Property in GroovyChange +
+
changeClosureCalled - Property in GroovyChange +
+
changeLog - Property in GroovyPrecondition +
+
ChangelogXml2Groovy - Class in org.grails.plugins.databasemigration.liquibase +
Generates a Groovy DSL version of a Liquibase XML changelog.
+
ChangelogXml2Groovy() - Constructor in ChangelogXml2Groovy +
+
changeSet - Property in GroovyPrecondition +
+
check(liquibase.database.Database, liquibase.changelog.DatabaseChangeLog, liquibase.changelog.ChangeSet, liquibase.changelog.visitor.ChangeExecListener) - Method in GroovyPrecondition +
+
checkClosure - Property in GroovyPrecondition +
+
checksumString - Property in GroovyChange +
+
closeResources(java.sql.Connection) - Method in GroovyChange.1 +
+
closeResources(java.sql.Connection) - Method in GroovyPrecondition.1 +
+
COMMAND_NAME - Field in GroovyDiffToChangeLogCommandStep +
+
COMMAND_NAME - Field in GroovyGenerateChangeLogCommandStep +
+
commandLine - Property in DatabaseMigrationCommand +
+
config - Property in GroovyChangeLogParser +
+
CONFIG_MAIN_PREFIX - Property in DatabaseMigrationGrailsPlugin +
+
config - Property in ScriptDatabaseMigrationCommand +
+
configureDatabase(liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
configureLiquibase() - Method in ApplicationContextDatabaseMigrationCommand +
+
configureLiquibase() - Method in ScriptDatabaseMigrationCommand +
+
configureSources(org.hibernate.boot.MetadataSources) - Method in GormDatabase +
+
confirm(java.lang.String) - Method in GroovyChange +
Called by the change or rollback closure.
+
confirmationMessage - Property in GroovyChange +
+
connection - Property in GormDatabase +
+
contexts - Property in DatabaseMigrationCommand +
+
convert(java.lang.String) - Method in ChangelogXml2Groovy +
Convert a Liquibase XML changelog to Groovy DSL format.
+
convertNode(groovy.util.Node, java.lang.StringBuilder, int) - Method in ChangelogXml2Groovy +
+
createDatabase(java.lang.String, java.lang.String, Map<String, String>) - Method in DatabaseMigrationCommand +
+
createDatabase(java.sql.Connection, liquibase.resource.ResourceAccessor) - Method in GrailsLiquibase +
+
createDatabaseSnapshot(java.lang.String) - Method in GroovyPrecondition +
Called from the check closure.
+
createLiquibase(java.sql.Connection) - Method in GrailsLiquibase +
+
createNode(java.lang.Object, java.util.Map, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
createResourceAccessor() - Method in DatabaseMigrationCommand +
+
ctx - Property in GroovyChange +
+
ctx - Property in GroovyPrecondition +
+
+ + + +

D

+
+ +
DATA_SOURCE_NAME_KEY - Property in PluginConstants +
+
database - Property in GroovyChange +
+
database - Property in GroovyPrecondition +
+
database - Field in NoopVisitor +
+
DatabaseChangeLogBuilder - Class in org.grails.plugins.databasemigration.liquibase +
+
DatabaseChangeLogBuilder() - Constructor in DatabaseChangeLogBuilder +
+
databaseChangeLogLockTableName - Property in GrailsLiquibase +
+
databaseChangeLogTableName - Property in GrailsLiquibase +
+
DatabaseMigrationCommand - Trait in org.grails.plugins.databasemigration.command +
+
DatabaseMigrationException - Class in org.grails.plugins.databasemigration +
+
DatabaseMigrationException() - Constructor in DatabaseMigrationException +
+
DatabaseMigrationGrailsPlugin - Class in org.grails.plugins.databasemigration +
+
DatabaseMigrationGrailsPlugin() - Constructor in DatabaseMigrationGrailsPlugin +
+
DatabaseMigrationTransactionManager - Class in org.grails.plugins.databasemigration +
Created by Jim on 7/15/2016.
+
DatabaseMigrationTransactionManager(org.springframework.context.ApplicationContext, java.lang.String) - Constructor in DatabaseMigrationTransactionManager +
+
dataSource - Property in DatabaseMigrationCommand +
+
dataSource - Property in DatabaseMigrationTransactionManager +
+
dataSourceName - Property in DatabaseChangeLogBuilder +
+
dataSourceName - Property in GrailsLiquibase +
+
dataSourceName - Property in GroovyChange +
+
DbmChangelogToGroovy - Class in org.grails.plugins.databasemigration.command +
+
DbmChangelogToGroovy() - Constructor in DbmChangelogToGroovy +
+
DbmCreateChangelog - Class in org.grails.plugins.databasemigration.command +
+
DbmCreateChangelog() - Constructor in DbmCreateChangelog +
+
DEFAULT_CHANGE_LOG_LOCATION - Property in PluginConstants +
+
DEFAULT_DATASOURCE_NAME - Property in PluginConstants +
+
DefaultDatabaseProductName - Property in GormDatabase +
+
defaultSchema - Property in DatabaseMigrationCommand +
+
defineCommandNames() - Method in GroovyDiffToChangeLogCommandStep +
+
defineCommandNames() - Method in GroovyGenerateChangeLogCommandStep +
+
description - Property in DatabaseMigrationGrailsPlugin +
+
documentation - Property in DatabaseMigrationGrailsPlugin +
+
doDiffToChangeLog(java.io.File, liquibase.database.Database, liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
doGenerateChangeLog(java.io.File, liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
doGeneratePreviousChangesetSql(java.io.Writer, liquibase.database.Database, liquibase.Liquibase, java.lang.String, java.lang.String) - Method in DatabaseMigrationCommand +
+
doWithApplicationContext() - Method in DatabaseMigrationGrailsPlugin +
+
doWithSpring() - Method in DatabaseMigrationGrailsPlugin +
+
+ + + +

E

+
+ +
EnvironmentAwareCodeGenConfig - Class in org.grails.plugins.databasemigration +
+
EnvironmentAwareCodeGenConfig(org.grails.config.CodeGenConfig, java.lang.String) - Constructor in EnvironmentAwareCodeGenConfig +
+
error(java.lang.String) - Method in GroovyChange +
Called by the validate closure.
+
executionContext - Property in ScriptDatabaseMigrationCommand +
+
+ + + +

F

+
+ +
fail(java.lang.String) - Method in GroovyPrecondition +
Called from the check closure as a shortcut to throw a PreconditionFailedException.
+
finishInitialization() - Method in GroovyChange +
+
+ + + +

G

+
+ +
generateCheckSum() - Method in GroovyChange +
+
generateRollbackStatements(liquibase.database.Database) - Method in GroovyChange +
+
generateStatements(liquibase.database.Database) - Method in GroovyChange +
+
getApplication() - Method in GroovyChange +
Called from the change or rollback closure.
+
getApplication() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getArgs() - Method in DatabaseMigrationCommand +
+
getChangeLogFile() - Method in DatabaseMigrationCommand +
+
getChangeLogFileName() - Method in DatabaseMigrationCommand +
+
getChangeLogLocation() - Method in DatabaseMigrationCommand +
+
getConfig() - Method in ApplicationContextDatabaseMigrationCommand +
+
getConfig() - Method in DatabaseMigrationCommand +
+
getConfig() - Method in GroovyChange +
Called from the change or rollback closure.
+
getConfig() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getConfigPrefix() - Method in DatabaseMigrationCommand +
+
getConfirmationMessage() - Method in GroovyChange +
+
getConnection() - Method in GroovyChange +
Called from the change or rollback closure.
+
getConnection() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getContexts() - Method in DatabaseMigrationCommand +
+
getDatabaseConnection() - Method in GroovyChange +
Called from the change or rollback closure.
+
getDatabaseConnection() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getDataSourceConfig(grails.config.ConfigMap) - Method in DatabaseMigrationCommand +
+
getDataSourceName(java.lang.String) - Method in DatabaseMigrationGrailsPlugin +
+
getDialect() - Method in GormDatabase +
+
getDirection() - Method in NoopVisitor +
+
getEnvironmentConfig(java.lang.String) - Method in ApplicationContextDatabaseMigrationCommand +
+
getMetadata() - Method in GormDatabase +
Return the hibernate Metadata used by this database.
+
getName() - Method in ScriptDatabaseMigrationCommand +
+
getPriority() - Method in GroovyChangeLogSerializer +
+
getSnapshot(liquibase.structure.DatabaseObject) - Method in GormDatabase.1 +
+
getSql() - Method in GroovyChange +
Called from the change or rollback closure.
+
getSql() - Method in GroovyPrecondition +
Called from the change or rollback closure.
+
getTransactionManager() - Method in DatabaseMigrationTransactionManager +
Returns:
The transactionManager bean for the current dataSource
+
getValidFileExtensions() - Method in GroovyChangeLogSerializer +
+
GormDatabase - Class in org.grails.plugins.databasemigration.liquibase +
+
GormDatabase.1 - Class in org.grails.plugins.databasemigration.liquibase +
+
GormDatabase.1() - Constructor in GormDatabase.1 +
+
GormDatabase(org.hibernate.dialect.Dialect, org.hibernate.service.ServiceRegistry) - Constructor in GormDatabase +
+
GrailsLiquibase - Class in org.grails.plugins.databasemigration.liquibase +
+
GrailsLiquibase(org.springframework.context.ApplicationContext) - Constructor in GrailsLiquibase +
+
grailsVersion - Property in DatabaseMigrationGrailsPlugin +
+
GroovyChange - Class in org.grails.plugins.databasemigration.liquibase +
Custom Groovy-based change.
+
GroovyChange.1 - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyChange.1() - Constructor in GroovyChange.1 +
+
GroovyChange() - Constructor in GroovyChange +
+
GroovyChangeLogParser - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyChangeLogParser() - Constructor in GroovyChangeLogParser +
+
GroovyChangeLogSerializer - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyChangeLogSerializer() - Constructor in GroovyChangeLogSerializer +
+
GroovyDiffToChangeLogCommandStep - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyDiffToChangeLogCommandStep() - Constructor in GroovyDiffToChangeLogCommandStep +
+
GroovyGenerateChangeLogCommandStep - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyGenerateChangeLogCommandStep() - Constructor in GroovyGenerateChangeLogCommandStep +
+
GroovyPrecondition - Class in org.grails.plugins.databasemigration.liquibase +
Custom Groovy-based precondition.
+
GroovyPrecondition.1 - Class in org.grails.plugins.databasemigration.liquibase +
+
GroovyPrecondition.1() - Constructor in GroovyPrecondition.1 +
+
GroovyPrecondition() - Constructor in GroovyPrecondition +
+
+ + + +

H

+
+ +
handle() - Method in ApplicationContextDatabaseMigrationCommand +
+
handle() - Method in DbmChangelogToGroovy +
+
handle() - Method in DbmCreateChangelog +
+
handle() - Method in ScriptDatabaseMigrationCommand +
+
hasOption(java.lang.String) - Method in DatabaseMigrationCommand +
+
+ + + +

I

+
+ +
initClosure - Property in GroovyChange +
+
initClosureCalled - Property in GroovyChange +
+
invokeMethod(java.lang.String, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
isCorrectDatabaseImplementation(liquibase.database.DatabaseConnection) - Method in GormDatabase +
+
isDefaultDataSource(java.lang.String) - Method in DatabaseMigrationGrailsPlugin +
+
isTimeFormat(java.lang.String) - Method in DatabaseMigrationCommand +
+
+ + + +

J

+
+ +
+ + + +

K

+
+ +
+ + + +

L

+
+ +
license - Property in DatabaseMigrationGrailsPlugin +
+
load(liquibase.parser.core.ParsedNode, liquibase.resource.ResourceAccessor) - Method in GroovyChange +
+
load(liquibase.parser.core.ParsedNode, liquibase.resource.ResourceAccessor) - Method in GroovyPrecondition +
+
+ + + +

M

+
+ +
+ + + +

N

+
+ +
name - Property in GroovyPrecondition +
+
NEWLINE - Field in ChangelogXml2Groovy +
+
NoopVisitor - Class in org.grails.plugins.databasemigration +
+
NoopVisitor(liquibase.database.Database) - Constructor in NoopVisitor +
+
+ + + +

O

+
+ +
optionValue(java.lang.String) - Method in DatabaseMigrationCommand +
+
outputHeader(liquibase.executor.Executor, java.lang.String, liquibase.Liquibase, liquibase.database.Database) - Method in DatabaseMigrationCommand +
+
+ + + +

P

+
+ +
parseDateTime(java.lang.String, java.lang.String) - Method in DatabaseMigrationCommand +
+
parseToNode(java.lang.String, liquibase.changelog.ChangeLogParameters, liquibase.resource.ResourceAccessor) - Method in GroovyChangeLogParser +
+
performUpdate(liquibase.Liquibase) - Method in GrailsLiquibase +
+
PluginConstants - Class in org.grails.plugins.databasemigration +
+
PluginConstants() - Constructor in PluginConstants +
+
pluginExcludes - Property in DatabaseMigrationGrailsPlugin +
+
priority - Property in GroovyChangeLogParser +
+
processGrailsChangeProperty(java.lang.String, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
processGrailsPreconditionProperty(java.lang.String, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
+ + + +

Q

+
+ +
+ + + +

R

+
+ +
resolveChangeLogFile(java.lang.String) - Method in DatabaseMigrationCommand +
+
resourceAccessor - Property in GroovyPrecondition +
+
rollbackClosure - Property in GroovyChange +
+
run(liquibase.command.CommandResultsBuilder) - Method in GroovyDiffToChangeLogCommandStep +
+
run(liquibase.command.CommandResultsBuilder) - Method in GroovyGenerateChangeLogCommandStep +
+
+ + + +

S

+
+ +
scm - Property in DatabaseMigrationGrailsPlugin +
+
ScriptDatabaseMigrationCommand - Trait in org.grails.plugins.databasemigration.command +
+
serialize(liquibase.serializer.LiquibaseSerializable, boolean) - Method in GroovyChangeLogSerializer +
+
serializedObjectNamespace - Property in GroovyPrecondition +
+
setChangeLogProperties(java.util.Map, liquibase.changelog.ChangeLogParameters) - Method in GroovyChangeLogParser +
+
setConfig(grails.config.ConfigMap) - Method in ScriptDatabaseMigrationCommand +
+
setExecutionContext(org.grails.cli.profile.ExecutionContext) - Method in ApplicationContextDatabaseMigrationCommand +
+
setParent(java.lang.Object, java.lang.Object) - Method in DatabaseChangeLogBuilder +
+
shortName - Property in GormDatabase +
+
shouldRun() - Method in GroovyChange +
Returns:
Whether the database executor is instance of LoggingExecutor
+
skipBootstrap - Property in ApplicationContextDatabaseMigrationCommand +
+
sourceConfig - Property in ScriptDatabaseMigrationCommand +
+
sql - Property in GroovyChange +
+
sql - Property in GroovyPrecondition +
+
sqlStatement(liquibase.statement.SqlStatement) - Method in GroovyChange +
Called by the change or rollback closure.
+
sqlStatements(java.util.List) - Method in GroovyChange +
Called by the change or rollback closure.
+
supports(java.lang.String, liquibase.resource.ResourceAccessor) - Method in GroovyChangeLogParser +
+
supportsRollback(liquibase.database.Database) - Method in GroovyChange +
+
+ + + +

T

+
+ +
title - Property in DatabaseMigrationGrailsPlugin +
+
+ + + +

U

+
+ +
+ + + +

V

+
+ +
validate(liquibase.database.Database) - Method in GroovyChange +
+
validate(liquibase.database.Database) - Method in GroovyPrecondition +
+
validateClosure - Property in GroovyChange +
+
validateClosureCalled - Property in GroovyChange +
+
validationErrors - Property in GroovyChange +
+
visit(liquibase.changelog.ChangeSet, liquibase.changelog.DatabaseChangeLog, liquibase.database.Database, Set<ChangeSetFilterResult>) - Method in NoopVisitor +
+
+ + + +

W

+
+ +
warn(java.lang.String) - Method in GroovyChange +
Called by the validate closure.
+
warn(liquibase.database.Database) - Method in GroovyPrecondition +
+
warnings - Property in GroovyChange +
+
withDatabase(Map<String, String>, groovy.lang.Closure) - Method in DatabaseMigrationCommand +
+
withFileOrSystemOutWriter(java.lang.String, groovy.lang.Closure) - Method in DatabaseMigrationCommand +
+
withGormDatabase(org.springframework.context.ConfigurableApplicationContext, java.lang.String, groovy.lang.Closure) - Method in ApplicationContextDatabaseMigrationCommand +
+
withLiquibase(groovy.lang.Closure) - Method in DatabaseMigrationCommand +
+
withNewTransaction(java.util.Map, groovy.lang.Closure) - Method in DatabaseMigrationTransactionManager +
Executes the closure within the context of a new transaction which is + configured with the properties contained in transactionProperties. +
+
withNewTransaction(groovy.lang.Closure) - Method in GroovyChange +
Executes the grailsChange>change block within the context of a new transaction
+
withTransaction(groovy.lang.Closure) - Method in ApplicationContextDatabaseMigrationCommand +
+
withTransaction(org.springframework.transaction.TransactionDefinition, groovy.lang.Closure) - Method in DatabaseMigrationTransactionManager +
Executes the closure within the context of a transaction for the given TransactionDefinition
+
write(List<T>, java.io.OutputStream) - Method in GroovyChangeLogSerializer +
+
+ + + +

X

+
+ +
+ + + +

Y

+
+ +
+ + + +

Z

+
+ +
+ + + +

_

+
+ +
+ + +
+ + +A + +B + +C + +D + +E + +F + +G + +H + +I + +J + +K + +L + +M + +N + +O + +P + +Q + +R + +S + +T + +U + +V + +W + +X + +Y + +Z + +_ + + + +
+ + + + + +
+ + + + diff --git a/5.0.x/api/index.html b/5.0.x/api/index.html new file mode 100644 index 00000000..6dabcf8e --- /dev/null +++ b/5.0.x/api/index.html @@ -0,0 +1,90 @@ + + + + +Index (database-migration 5.0.0 API) + + + + + + + + + + + + + + <noscript> + <div>JavaScript is disabled on your browser.</div> + </noscript> + <h2>Frame Alert</h2> + <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + diff --git a/5.0.x/api/inherit.gif b/5.0.x/api/inherit.gif new file mode 100644 index 00000000..c814867a Binary files /dev/null and b/5.0.x/api/inherit.gif differ diff --git a/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html b/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html new file mode 100644 index 00000000..fab0dad4 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html @@ -0,0 +1,261 @@ + + + + + + + + + + + DatabaseMigrationException (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class DatabaseMigrationException

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html b/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html new file mode 100644 index 00000000..e99a9ac9 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html @@ -0,0 +1,481 @@ + + + + + + + + + + + DatabaseMigrationGrailsPlugin (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class DatabaseMigrationGrailsPlugin

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html b/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html new file mode 100644 index 00000000..d559068b --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html @@ -0,0 +1,441 @@ + + + + + + + + + + + DatabaseMigrationTransactionManager (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class DatabaseMigrationTransactionManager

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html b/5.0.x/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html new file mode 100644 index 00000000..d38e1126 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html @@ -0,0 +1,238 @@ + + + + + + + + + + + EnvironmentAwareCodeGenConfig (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class EnvironmentAwareCodeGenConfig

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/NoopVisitor.html b/5.0.x/api/org/grails/plugins/databasemigration/NoopVisitor.html new file mode 100644 index 00000000..ba17230d --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/NoopVisitor.html @@ -0,0 +1,362 @@ + + + + + + + + + + + NoopVisitor (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class NoopVisitor

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/PluginConstants.html b/5.0.x/api/org/grails/plugins/databasemigration/PluginConstants.html new file mode 100644 index 00000000..736f3847 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/PluginConstants.html @@ -0,0 +1,325 @@ + + + + + + + + + + + PluginConstants (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration
+ +

[Groovy] Class PluginConstants

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html b/5.0.x/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html new file mode 100644 index 00000000..812dd9e7 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html @@ -0,0 +1,418 @@ + + + + + + + + + + + ApplicationContextDatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Trait ApplicationContextDatabaseMigrationCommand

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html b/5.0.x/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html new file mode 100644 index 00000000..174e6333 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html @@ -0,0 +1,662 @@ + + + + + + + + + + + DatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Trait DatabaseMigrationCommand

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html b/5.0.x/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html new file mode 100644 index 00000000..6b7cb9fb --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html @@ -0,0 +1,307 @@ + + + + + + + + + + + DbmChangelogToGroovy (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Class DbmChangelogToGroovy

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html b/5.0.x/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html new file mode 100644 index 00000000..4119d98e --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html @@ -0,0 +1,307 @@ + + + + + + + + + + + DbmCreateChangelog (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Class DbmCreateChangelog

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html b/5.0.x/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html new file mode 100644 index 00000000..8d1b1ead --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html @@ -0,0 +1,388 @@ + + + + + + + + + + + ScriptDatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.command
+ +

[Groovy] Trait ScriptDatabaseMigrationCommand

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/package-frame.html b/5.0.x/api/org/grails/plugins/databasemigration/command/package-frame.html new file mode 100644 index 00000000..d01d3437 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/package-frame.html @@ -0,0 +1,66 @@ + + + + + org.grails.plugins.databasemigration.command + + + + + + + + + + +
+ org.grails.plugins.databasemigration.command +
+ + + + +
+

Traits

+ +
+ + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/command/package-summary.html b/5.0.x/api/org/grails/plugins/databasemigration/command/package-summary.html new file mode 100644 index 00000000..8ab3b637 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/command/package-summary.html @@ -0,0 +1,194 @@ + + + + + +org.grails.plugins.databasemigration.command (database-migration 5.0.0 API) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package org.grails.plugins.databasemigration.command

+
+ + + +
+ + + +
+ +
+ + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/ChangelogXml2Groovy.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/ChangelogXml2Groovy.html new file mode 100644 index 00000000..237a4071 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/ChangelogXml2Groovy.html @@ -0,0 +1,386 @@ + + + + + + + + + + + ChangelogXml2Groovy (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class ChangelogXml2Groovy

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/DatabaseChangeLogBuilder.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/DatabaseChangeLogBuilder.html new file mode 100644 index 00000000..81e8da47 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/DatabaseChangeLogBuilder.html @@ -0,0 +1,456 @@ + + + + + + + + + + + DatabaseChangeLogBuilder (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class DatabaseChangeLogBuilder

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.1.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.1.html new file mode 100644 index 00000000..1ad2d390 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.1.html @@ -0,0 +1,281 @@ + + + + + + + + + + + GormDatabase.1 (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GormDatabase.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.html new file mode 100644 index 00000000..51d9ec22 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GormDatabase.html @@ -0,0 +1,430 @@ + + + + + + + + + + + GormDatabase (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GormDatabase

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GrailsLiquibase.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GrailsLiquibase.html new file mode 100644 index 00000000..76606f47 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GrailsLiquibase.html @@ -0,0 +1,378 @@ + + + + + + + + + + + GrailsLiquibase (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GrailsLiquibase

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.1.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.1.html new file mode 100644 index 00000000..a42ad16b --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.1.html @@ -0,0 +1,281 @@ + + + + + + + + + + + GroovyChange.1 (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChange.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.html new file mode 100644 index 00000000..96a3b02d --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChange.html @@ -0,0 +1,831 @@ + + + + + + + + + + + GroovyChange (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChange

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogParser.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogParser.html new file mode 100644 index 00000000..af2a6f95 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogParser.html @@ -0,0 +1,379 @@ + + + + + + + + + + + GroovyChangeLogParser (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChangeLogParser

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSerializer.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSerializer.html new file mode 100644 index 00000000..7a27e6d6 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyChangeLogSerializer.html @@ -0,0 +1,367 @@ + + + + + + + + + + + GroovyChangeLogSerializer (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyChangeLogSerializer

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyDiffToChangeLogCommandStep.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyDiffToChangeLogCommandStep.html new file mode 100644 index 00000000..3f3ba22b --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyDiffToChangeLogCommandStep.html @@ -0,0 +1,340 @@ + + + + + + + + + + + GroovyDiffToChangeLogCommandStep (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyDiffToChangeLogCommandStep

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyGenerateChangeLogCommandStep.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyGenerateChangeLogCommandStep.html new file mode 100644 index 00000000..54d756fd --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyGenerateChangeLogCommandStep.html @@ -0,0 +1,340 @@ + + + + + + + + + + + GroovyGenerateChangeLogCommandStep (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyGenerateChangeLogCommandStep

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.1.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.1.html new file mode 100644 index 00000000..00d7e580 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.1.html @@ -0,0 +1,281 @@ + + + + + + + + + + + GroovyPrecondition.1 (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyPrecondition.1

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.html new file mode 100644 index 00000000..576367f3 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/GroovyPrecondition.html @@ -0,0 +1,594 @@ + + + + + + + + + + + GroovyPrecondition (Grails Database Migration Plugin 5.0.0) + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ +
Package: org.grails.plugins.databasemigration.liquibase
+ +

[Groovy] Class GroovyPrecondition

+
+
+ +
+ +
+ +
+ +
+ +
+ +
+ + + +
+ + + + + +
+ + +
+ + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/package-frame.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/package-frame.html new file mode 100644 index 00000000..c252ccae --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/package-frame.html @@ -0,0 +1,58 @@ + + + + + org.grails.plugins.databasemigration.liquibase + + + + + + + + + + +
+ org.grails.plugins.databasemigration.liquibase +
+ + + + + +
+

Classes

+ +
+ + + + + + + + + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/liquibase/package-summary.html b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/package-summary.html new file mode 100644 index 00000000..a77482f3 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/liquibase/package-summary.html @@ -0,0 +1,240 @@ + + + + + +org.grails.plugins.databasemigration.liquibase (database-migration 5.0.0 API) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package org.grails.plugins.databasemigration.liquibase

+
+ + + +
+ + + + +
+ +
+ + + + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/package-frame.html b/5.0.x/api/org/grails/plugins/databasemigration/package-frame.html new file mode 100644 index 00000000..1d9132ef --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/package-frame.html @@ -0,0 +1,66 @@ + + + + + org.grails.plugins.databasemigration + + + + + + + + + + +
+ org.grails.plugins.databasemigration +
+ + + + + +
+

Classes

+ +
+ + + + +
+

Exceptions

+ +
+ + + + + + + + diff --git a/5.0.x/api/org/grails/plugins/databasemigration/package-summary.html b/5.0.x/api/org/grails/plugins/databasemigration/package-summary.html new file mode 100644 index 00000000..b650bae0 --- /dev/null +++ b/5.0.x/api/org/grails/plugins/databasemigration/package-summary.html @@ -0,0 +1,202 @@ + + + + + +org.grails.plugins.databasemigration (database-migration 5.0.0 API) + + + + + + + + + + + + + +
+ + + + + + +
+ + + + + +
+

Package org.grails.plugins.databasemigration

+
+ + + +
+ + + + +
+ +
+ + + + +
+ +
+ + + + + +
+ + +
+ + + + + +
+ + + + + diff --git a/5.0.x/api/overview-frame.html b/5.0.x/api/overview-frame.html new file mode 100644 index 00000000..04a9311c --- /dev/null +++ b/5.0.x/api/overview-frame.html @@ -0,0 +1,51 @@ + + + + +Overview (Grails Database Migration Plugin 5.0.0) + + + + + + + + +
All Classes
+
+

Packages

+ +
+ + + diff --git a/5.0.x/api/overview-summary.html b/5.0.x/api/overview-summary.html new file mode 100644 index 00000000..4d634744 --- /dev/null +++ b/5.0.x/api/overview-summary.html @@ -0,0 +1,142 @@ + + + + + +Overview (database-migration 5.0.0 API) + + + + + + + + + + + +
+ + + + + +
+ + +
+

Grails Database Migration Plugin 5.0.0

+
+ +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Packages 
PackageDescription
org.grails.plugins.databasemigration 
org.grails.plugins.databasemigration.command 
org.grails.plugins.databasemigration.liquibase 
+
+ + + + diff --git a/5.0.x/api/package-list b/5.0.x/api/package-list new file mode 100644 index 00000000..ada26f25 --- /dev/null +++ b/5.0.x/api/package-list @@ -0,0 +1,3 @@ +org.grails.plugins.databasemigration +org.grails.plugins.databasemigration.command +org.grails.plugins.databasemigration.liquibase diff --git a/5.0.x/api/stylesheet.css b/5.0.x/api/stylesheet.css new file mode 100644 index 00000000..06eb31a1 --- /dev/null +++ b/5.0.x/api/stylesheet.css @@ -0,0 +1,2306 @@ +@charset "UTF-8"; + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { + display: block +} + +audio, canvas, video { + display: inline-block +} + +audio:not([controls]) { + display: none; + height: 0 +} + +[hidden] { + display: none +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100% +} + +body { + margin: 0 +} + +a:focus { + outline: thin dotted +} + +a:active, a:hover { + outline: 0 +} + +h1 { + font-size: 2em; + margin: .67em 0 +} + +abbr[title] { + border-bottom: 1px dotted +} + +b, strong { + font-weight: bold +} + +dfn { + font-style: italic +} + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0 +} + +mark { + background: #ff0; + color: #000 +} + +code, kbd, pre, samp { + font-family: monospace, serif; + font-size: 1em +} + +pre { + white-space: pre-wrap +} + +q { + quotes: "C" "D" "8" "9" +} + +small { + font-size: 80% +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline +} + +sup { + top: -0.5em +} + +sub { + bottom: -0.25em +} + +img { + border: 0 +} + +svg:not(:root) { + overflow: hidden +} + +figure { + margin: 0 +} + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: .35em .625em .75em +} + +legend { + border: 0; + padding: 0 +} + +button, input, select, textarea { + font-family: inherit; + font-size: 100%; + margin: 0 +} + +button, input { + line-height: normal +} + +button, select { + text-transform: none +} + +button, html input[type="button"], input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + cursor: pointer +} + +button[disabled], html input[disabled] { + cursor: default +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0 +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box +} + +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0 +} + +textarea { + overflow: auto; + vertical-align: top +} + +table { + border-collapse: collapse; + border-spacing: 0 +} + +@-ms-viewport { + width: device-width +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px + } +} + +.hidden { + display: none !important; + visibility: hidden !important +} + +.visible-xs { + display: none !important +} + +tr.visible-xs { + display: none !important +} + +th.visible-xs, td.visible-xs { + display: none !important +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important + } + + tr.visible-xs { + display: table-row !important + } + + th.visible-xs, td.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important + } + + tr.visible-xs.visible-sm { + display: table-row !important + } + + th.visible-xs.visible-sm, td.visible-xs.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important + } + + tr.visible-xs.visible-md { + display: table-row !important + } + + th.visible-xs.visible-md, td.visible-xs.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important + } + + tr.visible-xs.visible-lg { + display: table-row !important + } + + th.visible-xs.visible-lg, td.visible-xs.visible-lg { + display: table-cell !important + } +} + +.visible-sm { + display: none !important +} + +tr.visible-sm { + display: none !important +} + +th.visible-sm, td.visible-sm { + display: none !important +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important + } + + tr.visible-sm.visible-xs { + display: table-row !important + } + + th.visible-sm.visible-xs, td.visible-sm.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important + } + + tr.visible-sm { + display: table-row !important + } + + th.visible-sm, td.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important + } + + tr.visible-sm.visible-md { + display: table-row !important + } + + th.visible-sm.visible-md, td.visible-sm.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important + } + + tr.visible-sm.visible-lg { + display: table-row !important + } + + th.visible-sm.visible-lg, td.visible-sm.visible-lg { + display: table-cell !important + } +} + +.visible-md { + display: none !important +} + +tr.visible-md { + display: none !important +} + +th.visible-md, td.visible-md { + display: none !important +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important + } + + tr.visible-md.visible-xs { + display: table-row !important + } + + th.visible-md.visible-xs, td.visible-md.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important + } + + tr.visible-md.visible-sm { + display: table-row !important + } + + th.visible-md.visible-sm, td.visible-md.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important + } + + tr.visible-md { + display: table-row !important + } + + th.visible-md, td.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important + } + + tr.visible-md.visible-lg { + display: table-row !important + } + + th.visible-md.visible-lg, td.visible-md.visible-lg { + display: table-cell !important + } +} + +.visible-lg { + display: none !important +} + +tr.visible-lg { + display: none !important +} + +th.visible-lg, td.visible-lg { + display: none !important +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important + } + + tr.visible-lg.visible-xs { + display: table-row !important + } + + th.visible-lg.visible-xs, td.visible-lg.visible-xs { + display: table-cell !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important + } + + tr.visible-lg.visible-sm { + display: table-row !important + } + + th.visible-lg.visible-sm, td.visible-lg.visible-sm { + display: table-cell !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important + } + + tr.visible-lg.visible-md { + display: table-row !important + } + + th.visible-lg.visible-md, td.visible-lg.visible-md { + display: table-cell !important + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important + } + + tr.visible-lg { + display: table-row !important + } + + th.visible-lg, td.visible-lg { + display: table-cell !important + } +} + +.hidden-xs { + display: block !important +} + +tr.hidden-xs { + display: table-row !important +} + +th.hidden-xs, td.hidden-xs { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important + } + + tr.hidden-xs { + display: none !important + } + + th.hidden-xs, td.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important + } + + tr.hidden-xs.hidden-sm { + display: none !important + } + + th.hidden-xs.hidden-sm, td.hidden-xs.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important + } + + tr.hidden-xs.hidden-md { + display: none !important + } + + th.hidden-xs.hidden-md, td.hidden-xs.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important + } + + tr.hidden-xs.hidden-lg { + display: none !important + } + + th.hidden-xs.hidden-lg, td.hidden-xs.hidden-lg { + display: none !important + } +} + +.hidden-sm { + display: block !important +} + +tr.hidden-sm { + display: table-row !important +} + +th.hidden-sm, td.hidden-sm { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important + } + + tr.hidden-sm.hidden-xs { + display: none !important + } + + th.hidden-sm.hidden-xs, td.hidden-sm.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important + } + + tr.hidden-sm { + display: none !important + } + + th.hidden-sm, td.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important + } + + tr.hidden-sm.hidden-md { + display: none !important + } + + th.hidden-sm.hidden-md, td.hidden-sm.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important + } + + tr.hidden-sm.hidden-lg { + display: none !important + } + + th.hidden-sm.hidden-lg, td.hidden-sm.hidden-lg { + display: none !important + } +} + +.hidden-md { + display: block !important +} + +tr.hidden-md { + display: table-row !important +} + +th.hidden-md, td.hidden-md { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important + } + + tr.hidden-md.hidden-xs { + display: none !important + } + + th.hidden-md.hidden-xs, td.hidden-md.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important + } + + tr.hidden-md.hidden-sm { + display: none !important + } + + th.hidden-md.hidden-sm, td.hidden-md.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important + } + + tr.hidden-md { + display: none !important + } + + th.hidden-md, td.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important + } + + tr.hidden-md.hidden-lg { + display: none !important + } + + th.hidden-md.hidden-lg, td.hidden-md.hidden-lg { + display: none !important + } +} + +.hidden-lg { + display: block !important +} + +tr.hidden-lg { + display: table-row !important +} + +th.hidden-lg, td.hidden-lg { + display: table-cell !important +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important + } + + tr.hidden-lg.hidden-xs { + display: none !important + } + + th.hidden-lg.hidden-xs, td.hidden-lg.hidden-xs { + display: none !important + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important + } + + tr.hidden-lg.hidden-sm { + display: none !important + } + + th.hidden-lg.hidden-sm, td.hidden-lg.hidden-sm { + display: none !important + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important + } + + tr.hidden-lg.hidden-md { + display: none !important + } + + th.hidden-lg.hidden-md, td.hidden-lg.hidden-md { + display: none !important + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important + } + + tr.hidden-lg { + display: none !important + } + + th.hidden-lg, td.hidden-lg { + display: none !important + } +} + +.visible-print { + display: none !important +} + +tr.visible-print { + display: none !important +} + +th.visible-print, td.visible-print { + display: none !important +} + +@media print { + .visible-print { + display: block !important + } + + tr.visible-print { + display: table-row !important + } + + th.visible-print, td.visible-print { + display: table-cell !important + } + + .hidden-print { + display: none !important + } + + tr.hidden-print { + display: none !important + } + + th.hidden-print, td.hidden-print { + display: none !important + } +} + +.container { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px +} + +.container:before, .container:after { + content: " "; + display: table +} + +.container:after { + clear: both +} + +.row-fluid { + margin-left: -15px; + margin-right: -15px +} + +.row-fluid:before, .row-fluid:after { + content: " "; + display: table +} + +.row-fluid:after { + clear: both +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 15px; + padding-right: 15px +} + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 { + float: left +} + +.col-xs-1 { + width: 8.333333333333332% +} + +.col-xs-2 { + width: 16.666666666666664% +} + +.col-xs-3 { + width: 25% +} + +.col-xs-4 { + width: 33.33333333333333% +} + +.col-xs-5 { + width: 41.66666666666667% +} + +.col-xs-6 { + width: 50% +} + +.col-xs-7 { + width: 58.333333333333336% +} + +.col-xs-8 { + width: 66.66666666666666% +} + +.col-xs-9 { + width: 75% +} + +.col-xs-10 { + width: 83.33333333333334% +} + +.col-xs-11 { + width: 91.66666666666666% +} + +.col-xs-12 { + width: 100% +} + +@media (min-width: 768px) { + .container { + max-width: 750px + } + + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11 { + float: left + } + + .col-sm-1 { + width: 8.333333333333332% + } + + .col-sm-2 { + width: 16.666666666666664% + } + + .col-sm-3 { + width: 25% + } + + .col-sm-4 { + width: 33.33333333333333% + } + + .col-sm-5 { + width: 41.66666666666667% + } + + .col-sm-6 { + width: 50% + } + + .col-sm-7 { + width: 58.333333333333336% + } + + .col-sm-8 { + width: 66.66666666666666% + } + + .col-sm-9 { + width: 75% + } + + .col-sm-10 { + width: 83.33333333333334% + } + + .col-sm-11 { + width: 91.66666666666666% + } + + .col-sm-12 { + width: 100% + } + + .col-sm-push-1 { + left: 8.333333333333332% + } + + .col-sm-push-2 { + left: 16.666666666666664% + } + + .col-sm-push-3 { + left: 25% + } + + .col-sm-push-4 { + left: 33.33333333333333% + } + + .col-sm-push-5 { + left: 41.66666666666667% + } + + .col-sm-push-6 { + left: 50% + } + + .col-sm-push-7 { + left: 58.333333333333336% + } + + .col-sm-push-8 { + left: 66.66666666666666% + } + + .col-sm-push-9 { + left: 75% + } + + .col-sm-push-10 { + left: 83.33333333333334% + } + + .col-sm-push-11 { + left: 91.66666666666666% + } + + .col-sm-pull-1 { + right: 8.333333333333332% + } + + .col-sm-pull-2 { + right: 16.666666666666664% + } + + .col-sm-pull-3 { + right: 25% + } + + .col-sm-pull-4 { + right: 33.33333333333333% + } + + .col-sm-pull-5 { + right: 41.66666666666667% + } + + .col-sm-pull-6 { + right: 50% + } + + .col-sm-pull-7 { + right: 58.333333333333336% + } + + .col-sm-pull-8 { + right: 66.66666666666666% + } + + .col-sm-pull-9 { + right: 75% + } + + .col-sm-pull-10 { + right: 83.33333333333334% + } + + .col-sm-pull-11 { + right: 91.66666666666666% + } + + .col-sm-offset-1 { + margin-left: 8.333333333333332% + } + + .col-sm-offset-2 { + margin-left: 16.666666666666664% + } + + .col-sm-offset-3 { + margin-left: 25% + } + + .col-sm-offset-4 { + margin-left: 33.33333333333333% + } + + .col-sm-offset-5 { + margin-left: 41.66666666666667% + } + + .col-sm-offset-6 { + margin-left: 50% + } + + .col-sm-offset-7 { + margin-left: 58.333333333333336% + } + + .col-sm-offset-8 { + margin-left: 66.66666666666666% + } + + .col-sm-offset-9 { + margin-left: 75% + } + + .col-sm-offset-10 { + margin-left: 83.33333333333334% + } + + .col-sm-offset-11 { + margin-left: 91.66666666666666% + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px + } + + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11 { + float: left + } + + .col-md-1 { + width: 8.333333333333332% + } + + .col-md-2 { + width: 16.666666666666664% + } + + .col-md-3 { + width: 25% + } + + .col-md-4 { + width: 33.33333333333333% + } + + .col-md-5 { + width: 41.66666666666667% + } + + .col-md-6 { + width: 50% + } + + .col-md-7 { + width: 58.333333333333336% + } + + .col-md-8 { + width: 66.66666666666666% + } + + .col-md-9 { + width: 75% + } + + .col-md-10 { + width: 83.33333333333334% + } + + .col-md-11 { + width: 91.66666666666666% + } + + .col-md-12 { + width: 100% + } + + .col-md-push-0 { + left: auto + } + + .col-md-push-1 { + left: 8.333333333333332% + } + + .col-md-push-2 { + left: 16.666666666666664% + } + + .col-md-push-3 { + left: 25% + } + + .col-md-push-4 { + left: 33.33333333333333% + } + + .col-md-push-5 { + left: 41.66666666666667% + } + + .col-md-push-6 { + left: 50% + } + + .col-md-push-7 { + left: 58.333333333333336% + } + + .col-md-push-8 { + left: 66.66666666666666% + } + + .col-md-push-9 { + left: 75% + } + + .col-md-push-10 { + left: 83.33333333333334% + } + + .col-md-push-11 { + left: 91.66666666666666% + } + + .col-md-pull-0 { + right: auto + } + + .col-md-pull-1 { + right: 8.333333333333332% + } + + .col-md-pull-2 { + right: 16.666666666666664% + } + + .col-md-pull-3 { + right: 25% + } + + .col-md-pull-4 { + right: 33.33333333333333% + } + + .col-md-pull-5 { + right: 41.66666666666667% + } + + .col-md-pull-6 { + right: 50% + } + + .col-md-pull-7 { + right: 58.333333333333336% + } + + .col-md-pull-8 { + right: 66.66666666666666% + } + + .col-md-pull-9 { + right: 75% + } + + .col-md-pull-10 { + right: 83.33333333333334% + } + + .col-md-pull-11 { + right: 91.66666666666666% + } + + .col-md-offset-0 { + margin-left: 0 + } + + .col-md-offset-1 { + margin-left: 8.333333333333332% + } + + .col-md-offset-2 { + margin-left: 16.666666666666664% + } + + .col-md-offset-3 { + margin-left: 25% + } + + .col-md-offset-4 { + margin-left: 33.33333333333333% + } + + .col-md-offset-5 { + margin-left: 41.66666666666667% + } + + .col-md-offset-6 { + margin-left: 50% + } + + .col-md-offset-7 { + margin-left: 58.333333333333336% + } + + .col-md-offset-8 { + margin-left: 66.66666666666666% + } + + .col-md-offset-9 { + margin-left: 75% + } + + .col-md-offset-10 { + margin-left: 83.33333333333334% + } + + .col-md-offset-11 { + margin-left: 91.66666666666666% + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1170px + } + + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11 { + float: left + } + + .col-lg-1 { + width: 8.333333333333332% + } + + .col-lg-2 { + width: 16.666666666666664% + } + + .col-lg-3 { + width: 25% + } + + .col-lg-4 { + width: 33.33333333333333% + } + + .col-lg-5 { + width: 41.66666666666667% + } + + .col-lg-6 { + width: 50% + } + + .col-lg-7 { + width: 58.333333333333336% + } + + .col-lg-8 { + width: 66.66666666666666% + } + + .col-lg-9 { + width: 75% + } + + .col-lg-10 { + width: 83.33333333333334% + } + + .col-lg-11 { + width: 91.66666666666666% + } + + .col-lg-12 { + width: 100% + } + + .col-lg-push-0 { + left: auto + } + + .col-lg-push-1 { + left: 8.333333333333332% + } + + .col-lg-push-2 { + left: 16.666666666666664% + } + + .col-lg-push-3 { + left: 25% + } + + .col-lg-push-4 { + left: 33.33333333333333% + } + + .col-lg-push-5 { + left: 41.66666666666667% + } + + .col-lg-push-6 { + left: 50% + } + + .col-lg-push-7 { + left: 58.333333333333336% + } + + .col-lg-push-8 { + left: 66.66666666666666% + } + + .col-lg-push-9 { + left: 75% + } + + .col-lg-push-10 { + left: 83.33333333333334% + } + + .col-lg-push-11 { + left: 91.66666666666666% + } + + .col-lg-pull-0 { + right: auto + } + + .col-lg-pull-1 { + right: 8.333333333333332% + } + + .col-lg-pull-2 { + right: 16.666666666666664% + } + + .col-lg-pull-3 { + right: 25% + } + + .col-lg-pull-4 { + right: 33.33333333333333% + } + + .col-lg-pull-5 { + right: 41.66666666666667% + } + + .col-lg-pull-6 { + right: 50% + } + + .col-lg-pull-7 { + right: 58.333333333333336% + } + + .col-lg-pull-8 { + right: 66.66666666666666% + } + + .col-lg-pull-9 { + right: 75% + } + + .col-lg-pull-10 { + right: 83.33333333333334% + } + + .col-lg-pull-11 { + right: 91.66666666666666% + } + + .col-lg-offset-0 { + margin-left: 0 + } + + .col-lg-offset-1 { + margin-left: 8.333333333333332% + } + + .col-lg-offset-2 { + margin-left: 16.666666666666664% + } + + .col-lg-offset-3 { + margin-left: 25% + } + + .col-lg-offset-4 { + margin-left: 33.33333333333333% + } + + .col-lg-offset-5 { + margin-left: 41.66666666666667% + } + + .col-lg-offset-6 { + margin-left: 50% + } + + .col-lg-offset-7 { + margin-left: 58.333333333333336% + } + + .col-lg-offset-8 { + margin-left: 66.66666666666666% + } + + .col-lg-offset-9 { + margin-left: 75% + } + + .col-lg-offset-10 { + margin-left: 83.33333333333334% + } + + .col-lg-offset-11 { + margin-left: 91.66666666666666% + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 0; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px +} + +.btn:hover, .btn:focus { + color: #333; + text-decoration: none +} + +.btn:active, .btn.active { + outline: 0; + background-image: none +} + +.btn.disabled, .btn[disabled], fieldset[disabled] .btn { + cursor: not-allowed; + pointer-events: none; + opacity: .65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc +} + +.btn-default:hover, .btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + color: #333; + background-color: #ebebeb; + border-color: #adadad +} + +.btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default { + background-image: none +} + +.btn-default.disabled, .btn-default[disabled], fieldset[disabled] .btn-default, .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled:active, .btn-default[disabled]:active, fieldset[disabled] .btn-default:active, .btn-default.disabled.active, .btn-default[disabled].active, fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc +} + +.btn-primary { + color: #fff; + background-color: #428bca; + border-color: #357ebd +} + +.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + color: #fff; + background-color: #3276b1; + border-color: #285e8e +} + +.btn-primary:active, .btn-primary.active, .open .dropdown-toggle.btn-primary { + background-image: none +} + +.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd +} + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ed9c28; + border-color: #d58512 +} + +.btn-warning:active, .btn-warning.active, .open .dropdown-toggle.btn-warning { + background-image: none +} + +.btn-warning.disabled, .btn-warning[disabled], fieldset[disabled] .btn-warning, .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled:active, .btn-warning[disabled]:active, fieldset[disabled] .btn-warning:active, .btn-warning.disabled.active, .btn-warning[disabled].active, fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236 +} + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + color: #fff; + background-color: #d2322d; + border-color: #ac2925 +} + +.btn-danger:active, .btn-danger.active, .open .dropdown-toggle.btn-danger { + background-image: none +} + +.btn-danger.disabled, .btn-danger[disabled], fieldset[disabled] .btn-danger, .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled:active, .btn-danger[disabled]:active, fieldset[disabled] .btn-danger:active, .btn-danger.disabled.active, .btn-danger[disabled].active, fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a +} + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + color: #fff; + background-color: #47a447; + border-color: #398439 +} + +.btn-success:active, .btn-success.active, .open .dropdown-toggle.btn-success { + background-image: none +} + +.btn-success.disabled, .btn-success[disabled], fieldset[disabled] .btn-success, .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled:active, .btn-success[disabled]:active, fieldset[disabled] .btn-success:active, .btn-success.disabled.active, .btn-success[disabled].active, fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c +} + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + color: #fff; + background-color: #39b3d7; + border-color: #269abc +} + +.btn-info:active, .btn-info.active, .open .dropdown-toggle.btn-info { + background-image: none +} + +.btn-info.disabled, .btn-info[disabled], fieldset[disabled] .btn-info, .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled:active, .btn-info[disabled]:active, fieldset[disabled] .btn-info:active, .btn-info.disabled.active, .btn-info[disabled].active, fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da +} + +.btn-link { + color: #428bca; + font-weight: normal; + cursor: pointer; + border-radius: 0 +} + +.btn-link, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { + border-color: transparent +} + +.btn-link:hover, .btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent +} + +.btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { + color: #999; + text-decoration: none +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px +} + +.btn-sm, .btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-xs { + padding: 1px 5px +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0 +} + +.btn-block + .btn-block { + margin-top: 5px +} + +input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { + width: 100% +} + +.btn-default .caret { + border-top-color: #333 +} + +.btn-primary .caret, .btn-success .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret { + border-top-color: #fff +} + +.dropup .btn-default .caret { + border-bottom-color: #333 +} + +.dropup .btn-primary .caret, .dropup .btn-success .caret, .dropup .btn-warning .caret, .dropup .btn-danger .caret, .dropup .btn-info .caret { + border-bottom-color: #fff +} + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle +} + +.btn-group > .btn, .btn-group-vertical > .btn { + position: relative; + float: left +} + +.btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { + z-index: 2 +} + +.btn-group > .btn:focus, .btn-group-vertical > .btn:focus { + outline: 0 +} + +.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { + margin-left: -1px +} + +.btn-toolbar:before, .btn-toolbar:after { + content: " "; + display: table +} + +.btn-toolbar:after { + clear: both +} + +.btn-toolbar .btn-group { + float: left +} + +.btn-toolbar > .btn + .btn, .btn-toolbar > .btn-group + .btn, .btn-toolbar > .btn + .btn-group, .btn-toolbar > .btn-group + .btn-group { + margin-left: 5px +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0 +} + +.btn-group > .btn:first-child { + margin-left: 0 +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0 +} + +.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0 +} + +.btn-group > .btn-group { + float: left +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group > .btn-group:first-child > .btn:last-child, .btn-group > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0 +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0 +} + +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0 +} + +.btn-group-xs > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + padding: 1px 5px +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px +} + +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px +} + +.btn-group.open .dropdown-toggle { + background: #f2f2f2 +} + +.btn .caret { + margin-left: 0 +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0 +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px +} + +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100% +} + +.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after { + content: " "; + display: table +} + +.btn-group-vertical > .btn-group:after { + clear: both +} + +.btn-group-vertical > .btn-group > .btn { + float: none +} + +.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0 +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0 +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-bottom-left-radius: 0; + border-top-right-radius: 0; + border-top-left-radius: 0 +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0 +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, .btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0 +} + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate +} + +.btn-group-justified .btn { + float: none; + display: table-cell; + width: 1% +} + +[data-toggle="buttons"] > .btn > input[type="radio"], [data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + border-bottom: 0 dotted; + content: "" +} + +.dropdown { + position: relative +} + +.dropdown-toggle:focus { + outline: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 14px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + background-clip: padding-box +} + +.dropdown-menu.pull-right { + right: 0; + left: auto +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5 +} + +.dropdown-menu > li > a { + font-size: 14px; + text-decoration: none; + display: block; + padding: 5px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333; + white-space: nowrap +} + +.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { + text-decoration: none; + color: #fff; + background-color: #428bca +} + +.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + outline: 0; + background-color: #428bca +} + +.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { + color: #999 +} + +.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + cursor: not-allowed +} + +.open > .dropdown-menu { + display: block +} + +.open > a { + outline: 0 +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999 +} + +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990 +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto +} + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000; + content: "" +} + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto + } +} + +body, html { + font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + margin: 0; + background: #ededed; + color: #343437; + line-height: 2em; + font-weight: 300; + font-size: .95em +} + +h1 { + font-size: 2.5em; + margin: .8em 0 +} + +body.center { + padding: 0 30px; + background: #FFF; + font-size: 1em +} + +ul li { + list-style-type: disc +} + +a { + color: #4290ad; + text-decoration: none; + font-weight: normal +} + +a:hover { + text-decoration: underline +} + +h1, h2, h3 { + font-weight: 300; + line-height: 1.2em +} + +.topNav, .bottomNav { + background: #f2f2f2; + margin: 0 -30px; + margin-bottom: 20px +} + +.topNav:before, .bottomNav:before, .topNav:after, .bottomNav:after { + content: " "; + display: table +} + +.topNav:after, .bottomNav:after { + clear: both +} + +.topNav ul.navList, .bottomNav ul.navList { + padding: 10px 20px; + margin: 0; + list-style-type: none +} + +.topNav ul.navList li, .bottomNav ul.navList li { + display: inline; + padding: 0 10px +} + +.topNav ul.navList li.navBarCell1Rev, .bottomNav ul.navList li.navBarCell1Rev { + font-weight: bold +} + +.bottomNav { + margin-top: 30px; + margin-bottom: 0 +} + +.aboutLanguage { + color: #BBB; + background: white; + text-align: center; + padding: 20px 0 +} + +.subNav { + padding-bottom: 10px; + margin-bottom: 10px; + border-bottom: 1px solid #EEE +} + +.subNav:before, .subNav:after { + content: " "; + display: table +} + +.subNav:after { + clear: both +} + +.subNav div:before, .subNav div:after { + content: " "; + display: table +} + +.subNav div:after { + clear: both +} + +.subNav ul.navList, .subNav ul { + font-size: .9em; + margin: 0; + padding: 00; + float: left; + list-style-type: none +} + +.subNav ul.navList li, .subNav ul li { + padding: 0 5px; + display: inline +} + +table.overviewSummary, .contentContainer ul li table { + width: 100%; + margin: 20px 0 +} + +table.overviewSummary caption, .contentContainer ul li table caption { + text-align: left; + font-weight: 100; + font-size: 1em; + float: left; + padding: 0 10px; + margin-top: 10px; + background: #db4800; + color: white +} + +table.overviewSummary tr th, .contentContainer ul li table tr th { + padding: 10px; + font-weight: bold; + font-size: 1em; + text-align: left +} + +table.overviewSummary tr td, .contentContainer ul li table tr td { + vertical-align: top; + font-size: .9em; + padding: 5px 10px; + border-top: 1px solid #EEE +} + +table.overviewSummary tbody > tr:nth-child(odd) > td, .contentContainer ul li table tbody > tr:nth-child(odd) > td { + background-color: #f9f9f9 +} + +body.left { + padding-top: 10px +} + +body.left h1, body.left h2 { + display: inline; + text-align: left; + font-weight: 100; + font-size: 1em; + margin: 0 10px; + padding: 3px 10px; + margin-top: 10px; + background: #db4800; + color: white; + line-height: 40px +} + +body.left .indexHeader { + margin: 0; + padding: 0 15px; + font-size: .9em +} + +body.left ul { + list-style-type: none; + margin: 0; + padding: 0 +} + +body.left ul li { + margin: 0; + padding: 0 +} + +body.left ul li a { + display: block; + padding: 0 15px; + text-decoration: none +} + +body.left ul li a:hover { + text-decoration: underline +} + +.contentContainer .header ul, .contentContainer ul.blockList { + padding: 0 +} + +.contentContainer .header ul > li, .contentContainer ul.blockList > li { + list-style-type: none +} + +.contentContainer ul.inheritance { + margin-left: 0; + padding-left: 0 +} + +.contentContainer ul.inheritance li { + list-style-type: none +} + +.contentContainer ul.inheritance ul.inheritance { + padding-left: 20px +} + +.contentContainer hr { + border: 0 none; + border-top: 1px solid #EEE; + margin-top: 30px; + margin-botom: 0 +} + +ul.blockList ul.blockList, ul.blockList ul.blockListLast { + border: 1px solid #EEE; + margin: 20px 0; + padding: 0 20px +} + +ul.blockList ul.blockList h4, ul.blockList ul.blockListLast h4, ul.blockList ul.blockList h3, ul.blockList ul.blockListLast h3 { + font-size: 1em; + font-weight: bold; + line-height: 2em; + text-indent: 10px; + border-bottom: 1px solid #EEE; + margin: 0 -20px; + padding: 5px 0; + background: #f2f2f2 +} + +ul.blockList ul.blockList li, ul.blockList ul.blockListLast li { + list-style-type: none +} + +ul.horizontal { + list-style-type: none; + padding: 0; + margin: 0; + font-size: .9em +} + +ul.horizontal li { + display: inline +} + +span.strong { + font-weight: bold +} + +a span.strong { + font-weight: normal +} \ No newline at end of file diff --git a/5.0.x/configuration.html b/5.0.x/configuration.html new file mode 100644 index 00000000..e831d2d8 --- /dev/null +++ b/5.0.x/configuration.html @@ -0,0 +1,626 @@ + + + + + + + +Configuration + + + + + + +
+
+

Configuration

+
+
+

There are a few configuration options for the plugin. All configurations are prefixed with grails.plugin.databasemigration:

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultMeaning

changelogLocation

grails-app/migrations

the folder containing the main changelog file (which can include one or more other files)

changelogFileName

changelog.groovy

the name of the main changelog file

changelogProperties

none

a map of properties to use for property substitution in Groovy DSL changelogs

contexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

dbDocLocation

target/dbdoc

the directory where the output from the dbm-db-doc script is written

dbDocController.enabled

true in dev mode

whether the /dbdoc/ url is accessible at runtime

dropOnStart

false

if true then drops all tables before auto-running migrations (if updateOnStart is true)

updateOnStart

false

if true then changesets from the specified list of names will be run at startup

updateOnStartFileName

none

the file name (relative to changelogLocation) to run at startup if updateOnStart is true

updateOnStartDefaultSchema

none

the default schema to use when running auto-migrate on start

updateOnStartContexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

updateAllOnStart

false

if true then changesets from the specified list of names will be run at startup for all dataSources. Useful for Grails Multitenancy with Multiple Databases (same db schema)

autoMigrateScripts

[RunApp]

the scripts when running auto-migrate. Useful to run auto-migrate during test phase with: [RunApp, TestApp]

excludeObjects

none

A comma-delimited list of database object names to ignore while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

includeObjects

none

A comma-delimited list of database object names to look for while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

databaseChangeLogTableName

databasechangelog

the Liquibase changelog record table name

databaseChangeLogLockTableName

databasechangeloglock

the Liquibase lock table name

+
+ + + + + +
+ + +All the above configs can be used for multiple datasources +
+
+
+

Multiple DataSource Example:

+
+
+

If secondary dataSource named "second" is configured in application.yml

+
+
+
+
dataSource:
+    pooled: true
+    jmxExport: true
+    driverClassName: org.h2.Driver
+    username: sa
+    password:
+    dbCreate: none
+    url: jdbc:h2:file:./multipleFirstDb
+    logSql: true
+    formatSql: true
+dataSources:
+    second:
+        pooled: true
+        jmxExport: true
+        driverClassName: org.h2.Driver
+        username: sa
+        password:
+        dbCreate: none
+        url: jdbc:h2:file:./multipleSecondDb
+
+
+
+

The configuration for this data source would be:

+
+
+
+
grails.plugin.databasemigration.reports.updateOnStart = true
+grails.plugin.databasemigration.reports.changelogFileName = changelog-second.groovy
+
+
+
+

The configuration for all data sources with same db schema would be:

+
+
+
+
grails.plugin.databasemigration.updateAllOnStart = true
+grails.plugin.databasemigration.changelogFileName = changelog.groovy
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/dbdoc.html b/5.0.x/dbdoc.html new file mode 100644 index 00000000..f8721290 --- /dev/null +++ b/5.0.x/dbdoc.html @@ -0,0 +1,487 @@ + + + + + + + +DbDoc Controller + + + + + + +
+
+

DbDoc Controller

+
+
+

You can use the dbm-db-doc script to generate static HTML files to view changelog information, but another option is to use the DbDocController at runtime. By default this controller is mapped to /appname/dbdoc/ but this can be customized with UrlMappings like any controller.

+
+
+

You probably don’t want to expose this information to all of your application’s users so by default the controller is only enabled in the development environment. But you can enable or disable it for any environment in application.groovy with the dbDocController.enabled config option. For example to enable for all environments (be sure to guard the URL with a security plugin in prod):

+
+
+
+
grails.plugin.databasemigration.dbDocController.enabled = true
+
+
+
+

or to enable in the production environment:

+
+
+
+
environments {
+   production {
+      grails.plugin.databasemigration.dbDocController.enabled = true
+   }
+   ...
+}
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/generalUsage.html b/5.0.x/generalUsage.html new file mode 100644 index 00000000..214b6b19 --- /dev/null +++ b/5.0.x/generalUsage.html @@ -0,0 +1,616 @@ + + + + + + + +General Usage + + + + + + +
+
+

General Usage

+
+
+

After creating the initial changelog, the typical workflow will be along the lines of:

+
+
+
    +
  • +

    make domain class changes that affect the schema

    +
  • +
  • +

    add changes to the changelog for them

    +
  • +
  • +

    backup your database in case something goes wrong

    +
  • +
  • +

    run grails dbm-update to update your development environment (or wherever you’re applying the changes)

    +
  • +
  • +

    check the updated domain class(es) and changelog(s) into source control

    +
  • +
+
+
+ + + + + +
+ + +
+
    +
  1. +

    When running migration scripts on non-development databases, it’s important that you backup the database before running the migration in case anything goes wrong. You could also make a copy of the database and run the script against that, and if there’s a problem the real database will be unaffected.

    +
  2. +
  3. +

    Setting the dbCreate setting to "none" is recommended when executing the dbm migration commands. Otherwise you might run into troubles and the commands could not be executed.

    +
  4. +
+
+
+
+
+

To create the changelog additions, you can either manually create the changes or with the dbm-gorm-diff script (you can also use the dbm-diff script but it’s far less convenient and requires a 2nd temporary database).

+
+
+

You have a few options with dbm-gorm-diff:

+
+
+
    +
  • +

    dbm-gorm-diff will dump to the console if no filename is specified, so you can copy/paste from there

    +
  • +
  • +

    if you include the --add parameter when running the script with a filename it will register an include for the filename in the main changelog for you

    +
  • +
+
+
+

Regardless of which approach you use, be sure to inspect generated changes and adjust as necessary.

+
+
+

Autorun on start

+
+

Since Liquibase maintains a record of changes that have been applied, you can avoid manually updating the database by taking advantage of the plugin’s auto-run feature. By default this is disabled, but you can enable it by adding

+
+
+
+
grails.plugin.databasemigration.updateOnStart = true
+
+
+
+

to application.groovy. In addition you must specify the file containing changes; specify the name using the updateOnStartFileName property, e.g.:

+
+
+
+
grails.plugin.databasemigration.updateOnStartFileName = 'changelog.groovy'
+
+
+
+

Since changelogs can contain changelogs you’ll most often just specify the root changelog, changelog.groovy by convention. Any changes that haven’t been executed (in the specified file(s) or files included by them) will be run in the order specified.

+
+
+

You may optionally limit the plugin’s auto-run feature to run only specific contexts. If this configuration parameter is empty or omitted, all contexts will be run.

+
+
+
+
grails.plugin.databasemigration.updateOnStartContexts = ['context1,context2']
+
+
+
+

You can be notified when migration are run (for example to do some work before and/or after the migrations execute) by registering a "callback" class as a Spring bean. The class can have any name and package and doesn’t have to implement any interface since its methods will be called using Groovy duck-typing.

+
+
+

The bean name is "migrationCallbacks" and there are currently three callback methods supported (all are optional):

+
+
+
    +
  • +

    beforeStartMigration will be called (if it exists) for each datasource before any migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
  • +

    onStartMigration will be called (if it exists) for each migration script; the method will be passed three arguments, the Liquibase Database, the Liquibase instance, and the changelog file name

    +
  • +
  • +

    afterMigrations will be called (if it exists) for each datasource after all migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
+
+
+

An example class will look like this:

+
+
+
+
package com.mycompany.myapp
+
+import liquibase.Liquibase
+import liquibase.database.Database
+
+class MigrationCallbacks {
+
+   void beforeStartMigration(Database Database) {
+      ...
+   }
+
+   void onStartMigration(Database database, Liquibase liquibase, String changelogName) {
+      ...
+   }
+
+   void afterMigrations(Database Database) {
+      ...
+   }
+}
+
+
+
+

Register it in resources.groovy:

+
+
+
+
import com.mycompany.myapp.MigrationCallbacks
+
+beans = {
+   migrationCallbacks(MigrationCallbacks)
+}
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/gettingStarted.html b/5.0.x/gettingStarted.html new file mode 100644 index 00000000..33d4f8d0 --- /dev/null +++ b/5.0.x/gettingStarted.html @@ -0,0 +1,601 @@ + + + + + + + +Getting Started + + + + + + +
+
+

Getting Started

+
+
+

The first step is to add a dependency for the plugin in build.gradle:

+
+
+
+
buildscript {
+   dependencies {
+      ...
+      classpath 'org.grails.plugins:database-migration:5.0.0'
+   }
+}
+
+dependencies {
+   ...
+     implementation 'org.grails.plugins:database-migration:5.0.0'
+}
+
+
+
+

It is also recommended to add a direct dependency to liquibase because Spring Boot overrides the one provided by this plugin

+
+
+
+
dependencies {
+   ...
+     implementation 'org.liquibase:liquibase-core:4.19.0'
+}
+
+
+
+

You should also tell Gradle about the migrations folder. If using Grails 4, make sure the configuration below is BEFORE the +dependencies configuration, so that the sourceSets declaration takes effect.

+
+
+
+
sourceSets {
+    main {
+        resources {
+            srcDir 'grails-app/migrations'
+        }
+    }
+}
+
+
+
+

Typical initial workflow

+
+
+

Next you’ll need to create an initial changelog. You can use Liquibase XML or the plugin’s Groovy DSL for individual files. You can even mix and match; Groovy files can include other Groovy files and Liquibase XML files (but XML files can’t include Groovy files).

+
+
+

Depending on the state of your database and code, you have two options; either create a changelog from the database or create it from your domain classes. The decision tends to be based on whether you prefer to design the database and adjust the domain classes to work with it, or to design your domain classes and use Hibernate to create the corresponding database structure.

+
+
+

To create a changelog from the database, use the dbm-generate-changelog script:

+
+
+
+
grails dbm-generate-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-changelog changelog.xml
+
+
+
+

depending on whether you prefer the Groovy DSL or XML. The filename is relative to the changelog base folder, which defaults to grails-app/migrations.

+
+
+ + + + + +
+ + +If you use the XML format (or use a non-default Groovy filename), be sure to change the name of the file in application.groovy so dbm-update and other scripts find the file: +
+
+
+
+
grails.plugin.databasemigration.changelogFileName = 'changelog.xml'
+
+
+
+

Since the database is already correct, run the dbm-changelog-sync script to record that the changes have already been applied:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Running this script is primarily a no-op except that it records the execution(s) in the Liquibase DATABASECHANGELOG table.

+
+
+

To create a changelog from your domain classes, use the dbm-generate-gorm-changelog script:

+
+
+
+
grails dbm-generate-gorm-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-gorm-changelog changelog.xml
+
+
+
+

If you haven’t created the database yet, run the dbm-update script to create the corresponding tables:

+
+
+
+
grails dbm-update
+
+
+
+

or the dbm-changelog-sync script if the database is already in sync with your code:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Source control

+
+
+

Now you can commit the changelog and the corresponding application code to source control. Other developers can then update and synchronize their databases, and start doing migrations themselves.

+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/gorm.html b/5.0.x/gorm.html new file mode 100644 index 00000000..63886c08 --- /dev/null +++ b/5.0.x/gorm.html @@ -0,0 +1,512 @@ + + + + + + + +GORM Support + + + + + + +
+
+

GORM Support

+
+
+

The plugin’s support for GORM is one feature that differentiates it from using Liquibase directly. Typically, when using Liquibase you make changes to a database yourself, and then create changesets manually, or use a diff script to compare your updated database to one that hasn’t been updated yet. This is a decent amount of work and is rather error-prone. It’s easy to forget some changes that aren’t required but help performance, for example creating an index on a foreign key when using MySQL.

+
+
+

create-drop, create, and update

+
+
+

On the other end of the spectrum, Hibernate’s create-drop mode (or create) will create a database that matches your domain model, but it’s destructive since all previous data is lost when it runs. This works well in the very early stages of development but gets frustrating quickly. Unfortunately Hibernate’s update mode seems like a good compromise since it only makes changes to your existing schema, but it’s very limited in what it will do. It’s very pessimistic and won’t make any changes that could lose data. So it will add new tables and columns, but won’t drop anything. If you remove a not-null domain class property you’ll find you can’t insert anymore since the column is still there. And it will create not-null columns as nullable since otherwise existing data would be invalid. It won’t even widen a column e.g. from VARCHAR(100) to VARCHAR(200).

+
+
+

dbm-gorm-diff

+
+
+

The plugin provides a script that will compare your GORM current domain model with a database that you specify, and the result is a Liquibase changeset - dbm-gorm-diff. This is the same changeset you would get if you exported your domain model to a scratch database and diffed it with the other database, but it’s more convenient.

+
+
+

So a good workflow would be:

+
+
+
    +
  • +

    make whatever domain class changes you need (add new ones, delete unneeded ones, add/change/remove properties, etc.)

    +
  • +
  • +

    once your tests pass, and you’re ready to commit your changes to source control, run the script to generate the changeset that will bring your database back in line with your code

    +
  • +
  • +

    add the changeset to an existing changelog file, or use the include tag to include the whole file

    +
  • +
  • +

    run the changeset on your functional test database

    +
  • +
  • +

    assuming your functional tests pass, check everything in as one commit

    +
  • +
  • +

    the other members of your team will get both the code and database changes when they next update, and will know to run the update script to sync their database with the latest code

    +
  • +
  • +

    once you’re ready to deploy to QA for testing (or staging or production), you can run all the un-run changes since the last deployment

    +
  • +
+
+
+

dbm-generate-gorm-changelog

+
+
+

The dbm-generate-gorm-changelog script is useful for when you want to switch from create-drop mode to doing proper migrations. It’s not very useful if you already have a database that’s in sync with your code, since you can just use the dbm-generate-changelog script that creates a changelog from your database.

+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/groovyChanges.html b/5.0.x/groovyChanges.html new file mode 100644 index 00000000..73954491 --- /dev/null +++ b/5.0.x/groovyChanges.html @@ -0,0 +1,599 @@ + + + + + + + +Groovy Changes + + + + + + +
+
+

Groovy Changes

+
+
+

In addition to the built-in Liquibase changes (see the documentation for what’s available) you can also make database changes using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsChange tag name and are contained in a changeSet tag like standard built-in tags.

+
+
+

There are four supported inner tags and two callable methods (to override the default confirmation message and checksum value).

+
+
+

General format

+
+

This is the general format of a Groovy-based change; all inner tags and methods are optional:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      grailsChange {
+         init {
+             // arbitrary initialization code; note that no
+             // database or connection is available
+         }
+
+         validate {
+            // can call warn(String message) to log a warning
+            // or error(String message) to stop processing
+         }
+
+         change {
+            // arbitrary code; make changes directly and/or return a
+            // SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'change confirmation message'
+         }
+
+         rollback {
+            // arbitrary code; make rollback changes directly and/or
+            // return a SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'rollback confirmation message'
+         }
+
+         confirm 'confirmation message'
+
+         checkSum 'override value for checksum'
+      }
+
+   }
+}
+
+
+
+
+

Available variables

+
+

These variables are available throughout the change closure:

+
+
+
    +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
+
+
+

The change and rollback closures also have the following available:

+
+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
+
+
+

init

+
+
+

This is where any optional initialization should happen. You can’t access the database from this closure.

+
+
+

validate

+
+
+

If there are any necessary validation checks before executing changes or rollbacks they should be done here. You can log warnings by calling warn(String message) and stop processing by calling error(String message). It may make more sense to use one or more preConditions instead of directly validating here.

+
+
+

change

+
+
+

All migration changes are done in the change closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

rollback

+
+
+

All rollback changes are done in the rollback closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

confirm

+
+
+

The confirm(String message) method is used to specify the confirmation message to be shown. The default is "Executed GrailsChange" and it can be overridden in the change or rollback closures to allow phase-specific messages or outside of both closures to use the same message for the update and rollback phase.

+
+
+

checkSum

+
+
+

The checksum for the change will be generated automatically, but if you want to override the value that gets hashed you can specify it with the checkSum(String value) method.

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/groovyPreconditions.html b/5.0.x/groovyPreconditions.html new file mode 100644 index 00000000..40b97e82 --- /dev/null +++ b/5.0.x/groovyPreconditions.html @@ -0,0 +1,580 @@ + + + + + + + +Groovy Preconditions + + + + + + +
+
+

Groovy Preconditions

+
+
+

In addition to the built-in Liquibase preconditions (see the documentation for what’s available) you can also specify preconditions using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsPrecondition tag name and are contained in the databaseChangeLog tag or in a changeSet tag like standard built-in tags.

+
+
+

General format

+
+

This is the general format of a Groovy-based precondition:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      preConditions {
+
+         grailsPrecondition {
+
+            check {
+
+               // use an assertion
+               assert x == x
+
+               // use an assertion with an error message
+               assert y == y : 'value cannot be 237'
+
+               // call the fail method
+               if (x != x) {
+                  fail 'x != x'
+               }
+
+               // throw an exception (the fail method is preferred)
+               if (y != y) {
+                  throw new RuntimeException('y != y')
+               }
+            }
+
+         }
+
+      }
+   }
+}
+
+
+
+

As you can see there are a few ways to indicate that a precondition wasn’t met:

+
+
+
    +
  • +

    use a simple assertion

    +
  • +
  • +

    use an assertion with a message

    +
  • +
  • +

    call the fail(String message) method (throws a PreconditionFailedException)

    +
  • +
  • +

    throw an exception (shouldn’t be necessary - use assert or fail() instead)

    +
  • +
+
+
+
+

Available variables

+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    changeLog - the current Liquibase DatabaseChangeLog instance

    +
  • +
+
+
+
+

Utility methods

+
+
    +
  • +

    createDatabaseSnapshotGenerator() - retrieves the DatabaseSnapshotGenerator for the current Database

    +
  • +
  • +

    createDatabaseSnapshot(String schemaName = null) - creates a DatabaseSnapshot for the current Database (and schema if specified)

    +
  • +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/index.html b/5.0.x/index.html new file mode 100644 index 00000000..83fce431 --- /dev/null +++ b/5.0.x/index.html @@ -0,0 +1,3884 @@ + + + + + + + +Grails Database Migration Plugin + + + + + + + +
+
+

1. Introduction to the Database Migration Plugin

+
+
+

The Database Migration plugin helps you manage database changes while developing Grails applications. The plugin uses the Liquibase library.

+
+
+

Using this plugin (and Liquibase in general) adds some structure and process to managing database changes. It will help avoid inconsistencies, communication issues, and other problems with ad-hoc approaches.

+
+
+

Database migrations are represented in text form, either using a Groovy DSL or native Liquibase XML, in one or more changelog files. This approach makes it natural to maintain the changelog files in source control and also works well with branches. Changelog files can include other changelog files, so often developers create hierarchical files organized with various schemes. One popular approach is to have a root changelog named changlog.groovy (or changelog.xml) and to include a changelog per feature/branch that includes multiple smaller changelogs. Once the feature is finished and merged into the main development tree/trunk the changelog files can either stay as they are or be merged into one large file. Use whatever approach makes sense for your applications, but keep in mind that there are many options available for changelog management.

+
+
+

Individual changes have an ID that should be globally unique, although they also include the username of the user making the change, making the combination of ID and username unique (although technically the ID, username, and changelog location are the "unique key").

+
+
+

As you make changes in your code (typically domain classes) that require changes in the database, you add a new change set to the changelog. Commit the code changes along with the changelog additions, and the other developers on your team will get both when they update from source control. Once they apply the new changes their code and development database will be in sync with your changes. Likewise when you deploy to a QA, a staging server, or production, you’ll run the un-run changes that correspond to the code updates to being that environment’s database in sync. Liquibase keeps track of previously executed changes so there’s no need to think about what has and hasn’t been run yet.

+
+
+

Scripts

+
+
+

Your primary interaction with the plugin will be using the provided scripts. For the most part these correspond to the many Liquibase commands that are typically executed directly from the commandline or with its Ant targets, but there are also a few Grails-specific scripts that take advantage of the information available from the GORM mappings.

+
+
+

All the scripts start with dbm- to ensure that they’re unique and don’t clash with scripts from Grails or other plugins.

+
+
+
+
+

2. Getting Started

+
+
+

The first step is to add a dependency for the plugin in build.gradle:

+
+
+
+
buildscript {
+   dependencies {
+      ...
+      classpath 'org.grails.plugins:database-migration:5.0.0'
+   }
+}
+
+dependencies {
+   ...
+     implementation 'org.grails.plugins:database-migration:5.0.0'
+}
+
+
+
+

It is also recommended to add a direct dependency to liquibase because Spring Boot overrides the one provided by this plugin

+
+
+
+
dependencies {
+   ...
+     implementation 'org.liquibase:liquibase-core:4.19.0'
+}
+
+
+
+

You should also tell Gradle about the migrations folder. If using Grails 4, make sure the configuration below is BEFORE the +dependencies configuration, so that the sourceSets declaration takes effect.

+
+
+
+
sourceSets {
+    main {
+        resources {
+            srcDir 'grails-app/migrations'
+        }
+    }
+}
+
+
+
+

Typical initial workflow

+
+
+

Next you’ll need to create an initial changelog. You can use Liquibase XML or the plugin’s Groovy DSL for individual files. You can even mix and match; Groovy files can include other Groovy files and Liquibase XML files (but XML files can’t include Groovy files).

+
+
+

Depending on the state of your database and code, you have two options; either create a changelog from the database or create it from your domain classes. The decision tends to be based on whether you prefer to design the database and adjust the domain classes to work with it, or to design your domain classes and use Hibernate to create the corresponding database structure.

+
+
+

To create a changelog from the database, use the dbm-generate-changelog script:

+
+
+
+
grails dbm-generate-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-changelog changelog.xml
+
+
+
+

depending on whether you prefer the Groovy DSL or XML. The filename is relative to the changelog base folder, which defaults to grails-app/migrations.

+
+
+ + + + + +
+ + +If you use the XML format (or use a non-default Groovy filename), be sure to change the name of the file in application.groovy so dbm-update and other scripts find the file: +
+
+
+
+
grails.plugin.databasemigration.changelogFileName = 'changelog.xml'
+
+
+
+

Since the database is already correct, run the dbm-changelog-sync script to record that the changes have already been applied:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Running this script is primarily a no-op except that it records the execution(s) in the Liquibase DATABASECHANGELOG table.

+
+
+

To create a changelog from your domain classes, use the dbm-generate-gorm-changelog script:

+
+
+
+
grails dbm-generate-gorm-changelog changelog.groovy
+
+
+
+

or

+
+
+
+
grails dbm-generate-gorm-changelog changelog.xml
+
+
+
+

If you haven’t created the database yet, run the dbm-update script to create the corresponding tables:

+
+
+
+
grails dbm-update
+
+
+
+

or the dbm-changelog-sync script if the database is already in sync with your code:

+
+
+
+
grails dbm-changelog-sync
+
+
+
+

Source control

+
+
+

Now you can commit the changelog and the corresponding application code to source control. Other developers can then update and synchronize their databases, and start doing migrations themselves.

+
+
+
+
+

3. Configuration

+
+
+

There are a few configuration options for the plugin. All configurations are prefixed with grails.plugin.databasemigration:

+
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultMeaning

changelogLocation

grails-app/migrations

the folder containing the main changelog file (which can include one or more other files)

changelogFileName

changelog.groovy

the name of the main changelog file

changelogProperties

none

a map of properties to use for property substitution in Groovy DSL changelogs

contexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

dbDocLocation

target/dbdoc

the directory where the output from the dbm-db-doc script is written

dbDocController.enabled

true in dev mode

whether the /dbdoc/ url is accessible at runtime

dropOnStart

false

if true then drops all tables before auto-running migrations (if updateOnStart is true)

updateOnStart

false

if true then changesets from the specified list of names will be run at startup

updateOnStartFileName

none

the file name (relative to changelogLocation) to run at startup if updateOnStart is true

updateOnStartDefaultSchema

none

the default schema to use when running auto-migrate on start

updateOnStartContexts

none

A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

updateAllOnStart

false

if true then changesets from the specified list of names will be run at startup for all dataSources. Useful for Grails Multitenancy with Multiple Databases (same db schema)

autoMigrateScripts

[RunApp]

the scripts when running auto-migrate. Useful to run auto-migrate during test phase with: [RunApp, TestApp]

excludeObjects

none

A comma-delimited list of database object names to ignore while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

includeObjects

none

A comma-delimited list of database object names to look for while performing a dbm-gorm-diff or dbm-generate-gorm-changelog

databaseChangeLogTableName

databasechangelog

the Liquibase changelog record table name

databaseChangeLogLockTableName

databasechangeloglock

the Liquibase lock table name

+
+ + + + + +
+ + +All the above configs can be used for multiple datasources +
+
+
+

Multiple DataSource Example:

+
+
+

If secondary dataSource named "second" is configured in application.yml

+
+
+
+
dataSource:
+    pooled: true
+    jmxExport: true
+    driverClassName: org.h2.Driver
+    username: sa
+    password:
+    dbCreate: none
+    url: jdbc:h2:file:./multipleFirstDb
+    logSql: true
+    formatSql: true
+dataSources:
+    second:
+        pooled: true
+        jmxExport: true
+        driverClassName: org.h2.Driver
+        username: sa
+        password:
+        dbCreate: none
+        url: jdbc:h2:file:./multipleSecondDb
+
+
+
+

The configuration for this data source would be:

+
+
+
+
grails.plugin.databasemigration.reports.updateOnStart = true
+grails.plugin.databasemigration.reports.changelogFileName = changelog-second.groovy
+
+
+
+

The configuration for all data sources with same db schema would be:

+
+
+
+
grails.plugin.databasemigration.updateAllOnStart = true
+grails.plugin.databasemigration.changelogFileName = changelog.groovy
+
+
+
+
+
+

4. General Usage

+
+
+

After creating the initial changelog, the typical workflow will be along the lines of:

+
+
+
    +
  • +

    make domain class changes that affect the schema

    +
  • +
  • +

    add changes to the changelog for them

    +
  • +
  • +

    backup your database in case something goes wrong

    +
  • +
  • +

    run grails dbm-update to update your development environment (or wherever you’re applying the changes)

    +
  • +
  • +

    check the updated domain class(es) and changelog(s) into source control

    +
  • +
+
+
+ + + + + +
+ + +
+
    +
  1. +

    When running migration scripts on non-development databases, it’s important that you backup the database before running the migration in case anything goes wrong. You could also make a copy of the database and run the script against that, and if there’s a problem the real database will be unaffected.

    +
  2. +
  3. +

    Setting the dbCreate setting to "none" is recommended when executing the dbm migration commands. Otherwise you might run into troubles and the commands could not be executed.

    +
  4. +
+
+
+
+
+

To create the changelog additions, you can either manually create the changes or with the dbm-gorm-diff script (you can also use the dbm-diff script but it’s far less convenient and requires a 2nd temporary database).

+
+
+

You have a few options with dbm-gorm-diff:

+
+
+
    +
  • +

    dbm-gorm-diff will dump to the console if no filename is specified, so you can copy/paste from there

    +
  • +
  • +

    if you include the --add parameter when running the script with a filename it will register an include for the filename in the main changelog for you

    +
  • +
+
+
+

Regardless of which approach you use, be sure to inspect generated changes and adjust as necessary.

+
+
+

4.1. Autorun on start

+
+

Since Liquibase maintains a record of changes that have been applied, you can avoid manually updating the database by taking advantage of the plugin’s auto-run feature. By default this is disabled, but you can enable it by adding

+
+
+
+
grails.plugin.databasemigration.updateOnStart = true
+
+
+
+

to application.groovy. In addition you must specify the file containing changes; specify the name using the updateOnStartFileName property, e.g.:

+
+
+
+
grails.plugin.databasemigration.updateOnStartFileName = 'changelog.groovy'
+
+
+
+

Since changelogs can contain changelogs you’ll most often just specify the root changelog, changelog.groovy by convention. Any changes that haven’t been executed (in the specified file(s) or files included by them) will be run in the order specified.

+
+
+

You may optionally limit the plugin’s auto-run feature to run only specific contexts. If this configuration parameter is empty or omitted, all contexts will be run.

+
+
+
+
grails.plugin.databasemigration.updateOnStartContexts = ['context1,context2']
+
+
+
+

You can be notified when migration are run (for example to do some work before and/or after the migrations execute) by registering a "callback" class as a Spring bean. The class can have any name and package and doesn’t have to implement any interface since its methods will be called using Groovy duck-typing.

+
+
+

The bean name is "migrationCallbacks" and there are currently three callback methods supported (all are optional):

+
+
+
    +
  • +

    beforeStartMigration will be called (if it exists) for each datasource before any migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
  • +

    onStartMigration will be called (if it exists) for each migration script; the method will be passed three arguments, the Liquibase Database, the Liquibase instance, and the changelog file name

    +
  • +
  • +

    afterMigrations will be called (if it exists) for each datasource after all migrations have run; the method will be passed a single argument, the Liquibase Database for that datasource

    +
  • +
+
+
+

An example class will look like this:

+
+
+
+
package com.mycompany.myapp
+
+import liquibase.Liquibase
+import liquibase.database.Database
+
+class MigrationCallbacks {
+
+   void beforeStartMigration(Database Database) {
+      ...
+   }
+
+   void onStartMigration(Database database, Liquibase liquibase, String changelogName) {
+      ...
+   }
+
+   void afterMigrations(Database Database) {
+      ...
+   }
+}
+
+
+
+

Register it in resources.groovy:

+
+
+
+
import com.mycompany.myapp.MigrationCallbacks
+
+beans = {
+   migrationCallbacks(MigrationCallbacks)
+}
+
+
+
+
+
+
+

5. Groovy Changes

+
+
+

In addition to the built-in Liquibase changes (see the documentation for what’s available) you can also make database changes using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsChange tag name and are contained in a changeSet tag like standard built-in tags.

+
+
+

There are four supported inner tags and two callable methods (to override the default confirmation message and checksum value).

+
+
+

5.1. General format

+
+

This is the general format of a Groovy-based change; all inner tags and methods are optional:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      grailsChange {
+         init {
+             // arbitrary initialization code; note that no
+             // database or connection is available
+         }
+
+         validate {
+            // can call warn(String message) to log a warning
+            // or error(String message) to stop processing
+         }
+
+         change {
+            // arbitrary code; make changes directly and/or return a
+            // SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'change confirmation message'
+         }
+
+         rollback {
+            // arbitrary code; make rollback changes directly and/or
+            // return a SqlStatement using the sqlStatement(SqlStatement sqlStatement)
+            // method or multiple with sqlStatements(List sqlStatements)
+
+            confirm 'rollback confirmation message'
+         }
+
+         confirm 'confirmation message'
+
+         checkSum 'override value for checksum'
+      }
+
+   }
+}
+
+
+
+
+

5.2. Available variables

+
+

These variables are available throughout the change closure:

+
+
+
    +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
+
+
+

The change and rollback closures also have the following available:

+
+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
+
+
+

init

+
+
+

This is where any optional initialization should happen. You can’t access the database from this closure.

+
+
+

validate

+
+
+

If there are any necessary validation checks before executing changes or rollbacks they should be done here. You can log warnings by calling warn(String message) and stop processing by calling error(String message). It may make more sense to use one or more preConditions instead of directly validating here.

+
+
+

change

+
+
+

All migration changes are done in the change closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

rollback

+
+
+

All rollback changes are done in the rollback closure. You can make changes directly (using the sql instance or the connection) and/or return one or more SqlStatements. You can call sqlStatement(SqlStatement statement) multiple times to register instances to be run. You can also call the sqlStatements(statements) method with an array or list of instances to be run.

+
+
+

confirm

+
+
+

The confirm(String message) method is used to specify the confirmation message to be shown. The default is "Executed GrailsChange" and it can be overridden in the change or rollback closures to allow phase-specific messages or outside of both closures to use the same message for the update and rollback phase.

+
+
+

checkSum

+
+
+

The checksum for the change will be generated automatically, but if you want to override the value that gets hashed you can specify it with the checkSum(String value) method.

+
+
+
+
+
+

6. Groovy Preconditions

+
+
+

In addition to the built-in Liquibase preconditions (see the documentation for what’s available) you can also specify preconditions using Groovy code (as long as you’re using the Groovy DSL file format). These changes use the grailsPrecondition tag name and are contained in the databaseChangeLog tag or in a changeSet tag like standard built-in tags.

+
+
+

6.1. General format

+
+

This is the general format of a Groovy-based precondition:

+
+
+
+
databaseChangeLog = {
+
+   changeSet(author: '...', id: '...') {
+
+      preConditions {
+
+         grailsPrecondition {
+
+            check {
+
+               // use an assertion
+               assert x == x
+
+               // use an assertion with an error message
+               assert y == y : 'value cannot be 237'
+
+               // call the fail method
+               if (x != x) {
+                  fail 'x != x'
+               }
+
+               // throw an exception (the fail method is preferred)
+               if (y != y) {
+                  throw new RuntimeException('y != y')
+               }
+            }
+
+         }
+
+      }
+   }
+}
+
+
+
+

As you can see there are a few ways to indicate that a precondition wasn’t met:

+
+
+
    +
  • +

    use a simple assertion

    +
  • +
  • +

    use an assertion with a message

    +
  • +
  • +

    call the fail(String message) method (throws a PreconditionFailedException)

    +
  • +
  • +

    throw an exception (shouldn’t be necessary - use assert or fail() instead)

    +
  • +
+
+
+
+

6.2. Available variables

+
+
    +
  • +

    database - the current Liquibase Database instance

    +
  • +
  • +

    databaseConnection - the current Liquibase DatabaseConnection instance, which is a wrapper around the JDBC Connection (but doesn’t implement the Connection interface)

    +
  • +
  • +

    connection - the real JDBC Connection instance (a shortcut for database.connection.wrappedConnection)

    +
  • +
  • +

    sql - a groovy.sql.Sql instance which uses the current connection and can be used for arbitrary queries and updates

    +
  • +
  • +

    resourceAccessor - the current Liquibase ResourceAccessor instance

    +
  • +
  • +

    ctx - the Spring ApplicationContext

    +
  • +
  • +

    application - the GrailsApplication

    +
  • +
  • +

    changeSet - the current Liquibase ChangeSet instance

    +
  • +
  • +

    changeLog - the current Liquibase DatabaseChangeLog instance

    +
  • +
+
+
+
+

6.3. Utility methods

+
+
    +
  • +

    createDatabaseSnapshotGenerator() - retrieves the DatabaseSnapshotGenerator for the current Database

    +
  • +
  • +

    createDatabaseSnapshot(String schemaName = null) - creates a DatabaseSnapshot for the current Database (and schema if specified)

    +
  • +
+
+
+
+
+
+

7. GORM Support

+
+
+

The plugin’s support for GORM is one feature that differentiates it from using Liquibase directly. Typically, when using Liquibase you make changes to a database yourself, and then create changesets manually, or use a diff script to compare your updated database to one that hasn’t been updated yet. This is a decent amount of work and is rather error-prone. It’s easy to forget some changes that aren’t required but help performance, for example creating an index on a foreign key when using MySQL.

+
+
+

create-drop, create, and update

+
+
+

On the other end of the spectrum, Hibernate’s create-drop mode (or create) will create a database that matches your domain model, but it’s destructive since all previous data is lost when it runs. This works well in the very early stages of development but gets frustrating quickly. Unfortunately Hibernate’s update mode seems like a good compromise since it only makes changes to your existing schema, but it’s very limited in what it will do. It’s very pessimistic and won’t make any changes that could lose data. So it will add new tables and columns, but won’t drop anything. If you remove a not-null domain class property you’ll find you can’t insert anymore since the column is still there. And it will create not-null columns as nullable since otherwise existing data would be invalid. It won’t even widen a column e.g. from VARCHAR(100) to VARCHAR(200).

+
+
+

dbm-gorm-diff

+
+
+

The plugin provides a script that will compare your GORM current domain model with a database that you specify, and the result is a Liquibase changeset - dbm-gorm-diff. This is the same changeset you would get if you exported your domain model to a scratch database and diffed it with the other database, but it’s more convenient.

+
+
+

So a good workflow would be:

+
+
+
    +
  • +

    make whatever domain class changes you need (add new ones, delete unneeded ones, add/change/remove properties, etc.)

    +
  • +
  • +

    once your tests pass, and you’re ready to commit your changes to source control, run the script to generate the changeset that will bring your database back in line with your code

    +
  • +
  • +

    add the changeset to an existing changelog file, or use the include tag to include the whole file

    +
  • +
  • +

    run the changeset on your functional test database

    +
  • +
  • +

    assuming your functional tests pass, check everything in as one commit

    +
  • +
  • +

    the other members of your team will get both the code and database changes when they next update, and will know to run the update script to sync their database with the latest code

    +
  • +
  • +

    once you’re ready to deploy to QA for testing (or staging or production), you can run all the un-run changes since the last deployment

    +
  • +
+
+
+

dbm-generate-gorm-changelog

+
+
+

The dbm-generate-gorm-changelog script is useful for when you want to switch from create-drop mode to doing proper migrations. It’s not very useful if you already have a database that’s in sync with your code, since you can just use the dbm-generate-changelog script that creates a changelog from your database.

+
+
+
+
+

8. DbDoc Controller

+
+
+

You can use the dbm-db-doc script to generate static HTML files to view changelog information, but another option is to use the DbDocController at runtime. By default this controller is mapped to /appname/dbdoc/ but this can be customized with UrlMappings like any controller.

+
+
+

You probably don’t want to expose this information to all of your application’s users so by default the controller is only enabled in the development environment. But you can enable or disable it for any environment in application.groovy with the dbDocController.enabled config option. For example to enable for all environments (be sure to guard the URL with a security plugin in prod):

+
+
+
+
grails.plugin.databasemigration.dbDocController.enabled = true
+
+
+
+

or to enable in the production environment:

+
+
+
+
environments {
+   production {
+      grails.plugin.databasemigration.dbDocController.enabled = true
+   }
+   ...
+}
+
+
+
+
+
+

9. Reference

+
+
+

9.1. Diff Scripts

+
+

9.1.1. dbm-diff

+
+
Purpose
+
+

Compares two databases and creates a changelog that will make the changes required to bring them into sync.

+
+
+
+
Description
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev) and another configured datasource in application.[yml|groovy].

+
+
+

If a filename parameter is specified then the output will be written to the named file, otherwise it will be written to the console. If the filename ends with .groovy a Groovy DSL file will be created, otherwise a standard XML file will be created.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-diff <<otherEnv>> <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    otherEnv - The name of the environment to compare to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - If specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.1.2. dbm-gorm-diff

+
+
Purpose
+
+

Diffs GORM classes against a database and generates a changelog XML or Groovy DSL file.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Similar to dbm-diff but diffs the current configuration based on the application’s domain classes with the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Doesn’t modify any existing files - you need to manually merge the output into the changeset along with any necessary modifications.

+
+
+

You can configure database objects to be ignored by this script - either in the GORM classes or in the target database. For example you may want domain objects that are transient, or you may have externally-managed tables, keys, etc. that you want left alone by the diff script. The configuration name for these ignored objects is grails.plugin.databasemigration.ignoredObjects, whose value is a list of strings.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-gorm-diff <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-gorm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.2. Documentation Scripts

+
+

9.2.1. dbm-db-doc

+
+
Purpose
+
+

Generates Javadoc-like documentation based on current database and change log.

+
+
+
+
Description
+
+

Writes to the folder specified by the destination parameter, or to the grails.plugin.databasemigration.dbDocLocation configuration option (defaults to target/dbdoc).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-db-doc <<destination>> --contexts=<<contexts>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    destination - The path to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-db-doc "--contexts=<<contexts>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.3. Maintenance Scripts

+
+

9.3.1. dbm-add-migration

+
+
Purpose
+
+

Adds a template migration file to your project and to the changelog file.

+
+
+
+
Description
+
+

This script provides a template in which to place your migration behaviour code, whether +Grails code or raw SQL.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-add-migration <<migrationName>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    migrationName - The name of the migration - will be used as a filename and the default migration id.

    +
  • +
+
+
+ + + + + +
+ + +This script only supports .groovy-style migrations at the moment. +
+
+
+
+
+

9.3.2. dbm-changelog-sync-sql

+
+
Purpose
+
+

Writes the SQL that will mark all changes as executed in the database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates the SQL statements for the Liquibase DATABASECHANGELOG control table.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.3. dbm-changelog-sync

+
+
Purpose
+
+

Mark all changes as executed in the database.

+
+
+
+
Description
+
+

Registers all changesets as having been run in the Liquibase control table. This is useful when the changes have already been applied, for example if you’ve just created a changelog from your database using the dbm-generate-changelog script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.4. dbm-changelog-to-groovy

+
+
Purpose
+
+

Converts a Liquibase XML changelog file to a Groovy DSL file.

+
+
+
+
Description
+
+

If the Groovy file name isn’t specified the name and location will be the same as the original XML file with a .groovy extension.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-to-groovy [xml_file_name] [groovy_file_name]
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    xml_file_name - The name and path of the XML file to convert

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    groovy_file_name - The name and path of the Groovy file

    +
  • +
+
+
+
+
+

9.3.5. dbm-clear-checksums

+
+
Purpose
+
+

Removes current checksums from database. On next run checksums will be recomputed.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-clear-checksums --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-clear-checksums  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.6. dbm-create-changelog

+
+
Purpose
+
+

Creates an empty changelog file.

+
+
+
+
Description
+
+

Creates a new empty file instead of generating the file from the database (using dbm-generate-changelog) or your GORM classes (using dbm-generate-gorm-changelog).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-create-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource creating a file named changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-create-changelog "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.7. dbm-drop-all

+
+
Purpose
+
+

Drops all database objects owned by the user.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-drop-all <<schemaNames>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    schemaNames - A comma-delimited list of schema names to use

    +
  • +
  • +

    defaultSchema - The default schema name to use if the schemaNames parameter isn’t present

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-drop-all "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.8. dbm-list-locks

+
+
Purpose
+
+

Lists who currently has locks on the database changelog to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-locks <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-list-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.9. dbm-list-tags

+
+
Purpose
+
+

Lists the tags in the current database.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-tags --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+

9.3.10. dbm-mark-next-changeset-ran

+
+
Purpose
+
+

Mark the next change set as executed in the database.

+
+
+
+
Description
+
+

If a filename is specified, writes the SQL that will perform the update that file but doesn’t update.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-mark-next-changeset-ran <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-mark-next-changeset-ran "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.11. dbm-register-changelog

+
+
Purpose
+
+

Adds an include for the specified changelog to the main changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-register-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the changelog file to include.

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource using changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.12. dbm-release-locks

+
+
Purpose
+
+

Releases all locks on the database changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-release-locks --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-release-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.13. dbm-status

+
+
Purpose
+
+

Outputs count or list of unrun change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-status <<filename>> --verbose=<<verbose>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    verbose - If true (the default) the changesets are listed; if false only the count is displayed

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the verbose, contexts, defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-status "--verbose=<<verbose>>" "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.14. dbm-tag

+
+
Purpose
+
+

Adds a tag to mark the current database state.

+
+
+
+
Description
+
+

Useful for future rollbacks to a specific tag (e.g. using the dbm-rollback script).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-tag <<tagName>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.3.15. dbm-validate

+
+
Purpose
+
+

Checks the changelog for errors.

+
+
+
+
Description
+
+

Prints any validation messages to the console.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-validate --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-validate "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.4. Rollback Scripts

+
+

9.4.1. dbm-future-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the current state after the changes in the changeslog have been applied to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-future-rollback-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-future-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.2. dbm-generate-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from the database.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-changelog <<filename>> --diffTypes=<<diffTypes>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    diffTypes - A comma-delimited list of change types to include - see the documentation for what types are available

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the diffTypes, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-changelog "--diffTypes=<<diffTypes>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.3. dbm-generate-gorm-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from current GORM classes.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in DataSource.groovy for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-gorm-changelog <<filename>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-gorm-changelog  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.4. dbm-rollback-count-sql

+
+
Purpose
+
+

Writes the SQL to roll back the specified number of change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.5. dbm-rollback-count

+
+
Purpose
+
+

Rolls back the specified number of change sets

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.6. dbm-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in when the tag was applied to STDOUT or a file.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-sql <<tagName>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.7. dbm-rollback-to-date-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in at the given date/time to STDOUT or a file.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date-sql <<date>> <<time>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], +the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.8. dbm-rollback-to-date

+
+
Purpose
+
+

Rolls back the database to the state it was in at the given date/time.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date <<date>> <<time>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.4.9. dbm-rollback

+
+
Purpose
+
+

Rolls back the database to the state it was in when the tag was applied.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback <<tagName>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+

9.5. Update Scripts

+
+

9.5.1. dbm-previous-changeset-sql

+
+
Purpose
+
+

Writes the SQL to STDOUT or a file for the specified number of previous changesets whether they have run or not.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-previous-changeset-sql <<number>> <<filename>> --skip=<<skip>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    skip - The number of changesets to skip if you want to exclude recent ones

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+

9.5.2. dbm-update-count-sql

+
+
Purpose
+
+

Writes the SQL that will partially update a database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.5.3. dbm-update-count

+
+
Purpose
+
+

Partially updates a database.

+
+
+
+
Description
+
+

Runs the specifed number of un-run changesets from the Changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.5.4. dbm-update-sql

+
+
Purpose
+
+

Writes the SQL that will update the database to the current version to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+

9.5.5. dbm-update

+
+
Purpose
+
+

Updates a database to the current version.

+
+
+
+
Description
+
+

Runs all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/introduction.html b/5.0.x/introduction.html new file mode 100644 index 00000000..bb29852d --- /dev/null +++ b/5.0.x/introduction.html @@ -0,0 +1,487 @@ + + + + + + + +Introduction to the Database Migration Plugin + + + + + + +
+
+

Introduction to the Database Migration Plugin

+
+
+

The Database Migration plugin helps you manage database changes while developing Grails applications. The plugin uses the Liquibase library.

+
+
+

Using this plugin (and Liquibase in general) adds some structure and process to managing database changes. It will help avoid inconsistencies, communication issues, and other problems with ad-hoc approaches.

+
+
+

Database migrations are represented in text form, either using a Groovy DSL or native Liquibase XML, in one or more changelog files. This approach makes it natural to maintain the changelog files in source control and also works well with branches. Changelog files can include other changelog files, so often developers create hierarchical files organized with various schemes. One popular approach is to have a root changelog named changlog.groovy (or changelog.xml) and to include a changelog per feature/branch that includes multiple smaller changelogs. Once the feature is finished and merged into the main development tree/trunk the changelog files can either stay as they are or be merged into one large file. Use whatever approach makes sense for your applications, but keep in mind that there are many options available for changelog management.

+
+
+

Individual changes have an ID that should be globally unique, although they also include the username of the user making the change, making the combination of ID and username unique (although technically the ID, username, and changelog location are the "unique key").

+
+
+

As you make changes in your code (typically domain classes) that require changes in the database, you add a new change set to the changelog. Commit the code changes along with the changelog additions, and the other developers on your team will get both when they update from source control. Once they apply the new changes their code and development database will be in sync with your changes. Likewise when you deploy to a QA, a staging server, or production, you’ll run the un-run changes that correspond to the code updates to being that environment’s database in sync. Liquibase keeps track of previously executed changes so there’s no need to think about what has and hasn’t been run yet.

+
+
+

Scripts

+
+
+

Your primary interaction with the plugin will be using the provided scripts. For the most part these correspond to the many Liquibase commands that are typically executed directly from the commandline or with its Ant targets, but there are also a few Grails-specific scripts that take advantage of the information available from the GORM mappings.

+
+
+

All the scripts start with dbm- to ensure that they’re unique and don’t clash with scripts from Grails or other plugins.

+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Diff Scripts/dbm-diff.html b/5.0.x/ref/Diff Scripts/dbm-diff.html new file mode 100644 index 00000000..37b15178 --- /dev/null +++ b/5.0.x/ref/Diff Scripts/dbm-diff.html @@ -0,0 +1,550 @@ + + + + + + + +dbm-diff + + + + + + +
+
+

dbm-diff

+
+
Purpose
+
+

Compares two databases and creates a changelog that will make the changes required to bring them into sync.

+
+
+
+
Description
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev) and another configured datasource in application.[yml|groovy].

+
+
+

If a filename parameter is specified then the output will be written to the named file, otherwise it will be written to the console. If the filename ends with .groovy a Groovy DSL file will be created, otherwise a standard XML file will be created.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-diff <<otherEnv>> <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    otherEnv - The name of the environment to compare to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - If specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Diff Scripts/dbm-gorm-diff.html b/5.0.x/ref/Diff Scripts/dbm-gorm-diff.html new file mode 100644 index 00000000..0cd75ce8 --- /dev/null +++ b/5.0.x/ref/Diff Scripts/dbm-gorm-diff.html @@ -0,0 +1,549 @@ + + + + + + + +dbm-gorm-diff + + + + + + +
+
+

dbm-gorm-diff

+
+
Purpose
+
+

Diffs GORM classes against a database and generates a changelog XML or Groovy DSL file.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Similar to dbm-diff but diffs the current configuration based on the application’s domain classes with the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Doesn’t modify any existing files - you need to manually merge the output into the changeset along with any necessary modifications.

+
+
+

You can configure database objects to be ignored by this script - either in the GORM classes or in the target database. For example you may want domain objects that are transient, or you may have externally-managed tables, keys, etc. that you want left alone by the diff script. The configuration name for these ignored objects is grails.plugin.databasemigration.ignoredObjects, whose value is a list of strings.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-gorm-diff <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-gorm-diff "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Documentation Scripts/dbm-db-doc.html b/5.0.x/ref/Documentation Scripts/dbm-db-doc.html new file mode 100644 index 00000000..d6f74812 --- /dev/null +++ b/5.0.x/ref/Documentation Scripts/dbm-db-doc.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-db-doc + + + + + + +
+
+

dbm-db-doc

+
+
Purpose
+
+

Generates Javadoc-like documentation based on current database and change log.

+
+
+
+
Description
+
+

Writes to the folder specified by the destination parameter, or to the grails.plugin.databasemigration.dbDocLocation configuration option (defaults to target/dbdoc).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-db-doc <<destination>> --contexts=<<contexts>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    destination - The path to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-db-doc "--contexts=<<contexts>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-add-migration.html b/5.0.x/ref/Maintenance Scripts/dbm-add-migration.html new file mode 100644 index 00000000..27a23a69 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-add-migration.html @@ -0,0 +1,504 @@ + + + + + + + +dbm-add-migration + + + + + + +
+
+

dbm-add-migration

+
+
Purpose
+
+

Adds a template migration file to your project and to the changelog file.

+
+
+
+
Description
+
+

This script provides a template in which to place your migration behaviour code, whether +Grails code or raw SQL.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-add-migration <<migrationName>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    migrationName - The name of the migration - will be used as a filename and the default migration id.

    +
  • +
+
+
+ + + + + +
+ + +This script only supports .groovy-style migrations at the moment. +
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-changelog-sync-sql.html b/5.0.x/ref/Maintenance Scripts/dbm-changelog-sync-sql.html new file mode 100644 index 00000000..2b4a7a71 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-changelog-sync-sql.html @@ -0,0 +1,538 @@ + + + + + + + +dbm-changelog-sync-sql + + + + + + +
+
+

dbm-changelog-sync-sql

+
+
Purpose
+
+

Writes the SQL that will mark all changes as executed in the database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates the SQL statements for the Liquibase DATABASECHANGELOG control table.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-changelog-sync.html b/5.0.x/ref/Maintenance Scripts/dbm-changelog-sync.html new file mode 100644 index 00000000..a329a176 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-changelog-sync.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-changelog-sync + + + + + + +
+
+

dbm-changelog-sync

+
+
Purpose
+
+

Mark all changes as executed in the database.

+
+
+
+
Description
+
+

Registers all changesets as having been run in the Liquibase control table. This is useful when the changes have already been applied, for example if you’ve just created a changelog from your database using the dbm-generate-changelog script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-sync --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - If provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-changelog-sync "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-changelog-to-groovy.html b/5.0.x/ref/Maintenance Scripts/dbm-changelog-to-groovy.html new file mode 100644 index 00000000..361da5bc --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-changelog-to-groovy.html @@ -0,0 +1,501 @@ + + + + + + + +dbm-changelog-to-groovy + + + + + + +
+
+

dbm-changelog-to-groovy

+
+
Purpose
+
+

Converts a Liquibase XML changelog file to a Groovy DSL file.

+
+
+
+
Description
+
+

If the Groovy file name isn’t specified the name and location will be the same as the original XML file with a .groovy extension.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-changelog-to-groovy [xml_file_name] [groovy_file_name]
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    xml_file_name - The name and path of the XML file to convert

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    groovy_file_name - The name and path of the Groovy file

    +
  • +
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-clear-checksums.html b/5.0.x/ref/Maintenance Scripts/dbm-clear-checksums.html new file mode 100644 index 00000000..42b2d692 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-clear-checksums.html @@ -0,0 +1,525 @@ + + + + + + + +dbm-clear-checksums + + + + + + +
+
+

dbm-clear-checksums

+
+
Purpose
+
+

Removes current checksums from database. On next run checksums will be recomputed.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-clear-checksums --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-clear-checksums  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-create-changelog.html b/5.0.x/ref/Maintenance Scripts/dbm-create-changelog.html new file mode 100644 index 00000000..11fdb7f6 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-create-changelog.html @@ -0,0 +1,535 @@ + + + + + + + +dbm-create-changelog + + + + + + +
+
+

dbm-create-changelog

+
+
Purpose
+
+

Creates an empty changelog file.

+
+
+
+
Description
+
+

Creates a new empty file instead of generating the file from the database (using dbm-generate-changelog) or your GORM classes (using dbm-generate-gorm-changelog).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-create-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource creating a file named changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-create-changelog "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-drop-all.html b/5.0.x/ref/Maintenance Scripts/dbm-drop-all.html new file mode 100644 index 00000000..c06824fc --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-drop-all.html @@ -0,0 +1,531 @@ + + + + + + + +dbm-drop-all + + + + + + +
+
+

dbm-drop-all

+
+
Purpose
+
+

Drops all database objects owned by the user.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-drop-all <<schemaNames>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    schemaNames - A comma-delimited list of schema names to use

    +
  • +
  • +

    defaultSchema - The default schema name to use if the schemaNames parameter isn’t present

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-drop-all "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-list-locks.html b/5.0.x/ref/Maintenance Scripts/dbm-list-locks.html new file mode 100644 index 00000000..84829ba8 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-list-locks.html @@ -0,0 +1,531 @@ + + + + + + + +dbm-list-locks + + + + + + +
+
+

dbm-list-locks

+
+
Purpose
+
+

Lists who currently has locks on the database changelog to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-locks <<filename>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-list-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-list-tags.html b/5.0.x/ref/Maintenance Scripts/dbm-list-tags.html new file mode 100644 index 00000000..b4263cb2 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-list-tags.html @@ -0,0 +1,511 @@ + + + + + + + +dbm-list-tags + + + + + + +
+
+

dbm-list-tags

+
+
Purpose
+
+

Lists the tags in the current database.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-list-tags --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-mark-next-changeset-ran.html b/5.0.x/ref/Maintenance Scripts/dbm-mark-next-changeset-ran.html new file mode 100644 index 00000000..77f12cf6 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-mark-next-changeset-ran.html @@ -0,0 +1,537 @@ + + + + + + + +dbm-mark-next-changeset-ran + + + + + + +
+
+

dbm-mark-next-changeset-ran

+
+
Purpose
+
+

Mark the next change set as executed in the database.

+
+
+
+
Description
+
+

If a filename is specified, writes the SQL that will perform the update that file but doesn’t update.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-mark-next-changeset-ran <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-mark-next-changeset-ran "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-register-changelog.html b/5.0.x/ref/Maintenance Scripts/dbm-register-changelog.html new file mode 100644 index 00000000..c1a3162e --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-register-changelog.html @@ -0,0 +1,533 @@ + + + + + + + +dbm-register-changelog + + + + + + +
+
+

dbm-register-changelog

+
+
Purpose
+
+

Adds an include for the specified changelog to the main changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-register-changelog <<filename>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    filename - The path to the changelog file to include.

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource using changelog-<<dataSource>>.groovy if a filename is not given. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-diff  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy] +the suffix of reports will be used as the parameter value. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-release-locks.html b/5.0.x/ref/Maintenance Scripts/dbm-release-locks.html new file mode 100644 index 00000000..aa55bc1d --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-release-locks.html @@ -0,0 +1,528 @@ + + + + + + + +dbm-release-locks + + + + + + +
+
+

dbm-release-locks

+
+
Purpose
+
+

Releases all locks on the database changelog.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-release-locks --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-release-locks "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-status.html b/5.0.x/ref/Maintenance Scripts/dbm-status.html new file mode 100644 index 00000000..90f8107d --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-status.html @@ -0,0 +1,537 @@ + + + + + + + +dbm-status + + + + + + +
+
+

dbm-status

+
+
Purpose
+
+

Outputs count or list of unrun change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-status <<filename>> --verbose=<<verbose>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    verbose - If true (the default) the changesets are listed; if false only the count is displayed

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the verbose, contexts, defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-status "--verbose=<<verbose>>" "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-tag.html b/5.0.x/ref/Maintenance Scripts/dbm-tag.html new file mode 100644 index 00000000..cf7b3d7b --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-tag.html @@ -0,0 +1,538 @@ + + + + + + + +dbm-tag + + + + + + +
+
+

dbm-tag

+
+
Purpose
+
+

Adds a tag to mark the current database state.

+
+
+
+
Description
+
+

Useful for future rollbacks to a specific tag (e.g. using the dbm-rollback script).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-tag <<tagName>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the defaultSchema and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-tag "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Maintenance Scripts/dbm-validate.html b/5.0.x/ref/Maintenance Scripts/dbm-validate.html new file mode 100644 index 00000000..f1e3f342 --- /dev/null +++ b/5.0.x/ref/Maintenance Scripts/dbm-validate.html @@ -0,0 +1,528 @@ + + + + + + + +dbm-validate + + + + + + +
+
+

dbm-validate

+
+
Purpose
+
+

Checks the changelog for errors.

+
+
+
+
Description
+
+

Prints any validation messages to the console.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-validate --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none.

+
+
+

Optional arguments:

+
+
+
    +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-validate "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-future-rollback-sql.html b/5.0.x/ref/Rollback Scripts/dbm-future-rollback-sql.html new file mode 100644 index 00000000..d4ae1d51 --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-future-rollback-sql.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-future-rollback-sql + + + + + + +
+
+

dbm-future-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the current state after the changes in the changeslog have been applied to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-future-rollback-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-future-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-generate-changelog.html b/5.0.x/ref/Rollback Scripts/dbm-generate-changelog.html new file mode 100644 index 00000000..99be89cf --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-generate-changelog.html @@ -0,0 +1,546 @@ + + + + + + + +dbm-generate-changelog + + + + + + +
+
+

dbm-generate-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from the database.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-changelog <<filename>> --diffTypes=<<diffTypes>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    diffTypes - A comma-delimited list of change types to include - see the documentation for what types are available

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the diffTypes, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-changelog "--diffTypes=<<diffTypes>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-generate-gorm-changelog.html b/5.0.x/ref/Rollback Scripts/dbm-generate-gorm-changelog.html new file mode 100644 index 00000000..4259a8e2 --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-generate-gorm-changelog.html @@ -0,0 +1,540 @@ + + + + + + + +dbm-generate-gorm-changelog + + + + + + +
+
+

dbm-generate-gorm-changelog

+
+
Purpose
+
+

Generates an initial changelog XML or Groovy DSL file from current GORM classes.

+
+
+
+
Description
+
+

Creates a Groovy DSL file if the filename is specified and it ends with .groovy. If another extension is specified it creates a standard Liquibase XML file, and if no filename is specified it writes to the console.

+
+
+

File are written to the migrations folder, so specify the filename relative to the migrations folder (grails-app/migrations by default).

+
+
+

Executes against the database configured in DataSource.groovy for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-generate-gorm-changelog <<filename>> --dataSource=<<dataSource>> --add
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
  • +

    add - if specified add an include in the root changelog file referencing the new file

    +
  • +
+
+
+ + + + + +
+ + +Note that the dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-generate-gorm-changelog  "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-rollback-count-sql.html b/5.0.x/ref/Rollback Scripts/dbm-rollback-count-sql.html new file mode 100644 index 00000000..04deb2a9 --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-rollback-count-sql.html @@ -0,0 +1,541 @@ + + + + + + + +dbm-rollback-count-sql + + + + + + +
+
+

dbm-rollback-count-sql

+
+
Purpose
+
+

Writes the SQL to roll back the specified number of change sets to STDOUT or a file.

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-rollback-count.html b/5.0.x/ref/Rollback Scripts/dbm-rollback-count.html new file mode 100644 index 00000000..9a0b6eeb --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-rollback-count.html @@ -0,0 +1,538 @@ + + + + + + + +dbm-rollback-count + + + + + + +
+
+

dbm-rollback-count

+
+
Purpose
+
+

Rolls back the specified number of change sets

+
+
+
+
Description
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of changesets to roll back

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-rollback-sql.html b/5.0.x/ref/Rollback Scripts/dbm-rollback-sql.html new file mode 100644 index 00000000..fa4e2adb --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-rollback-sql.html @@ -0,0 +1,544 @@ + + + + + + + +dbm-rollback-sql + + + + + + +
+
+

dbm-rollback-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in when the tag was applied to STDOUT or a file.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-sql <<tagName>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-rollback-to-date-sql.html b/5.0.x/ref/Rollback Scripts/dbm-rollback-to-date-sql.html new file mode 100644 index 00000000..275498dc --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-rollback-to-date-sql.html @@ -0,0 +1,548 @@ + + + + + + + +dbm-rollback-to-date-sql + + + + + + +
+
+

dbm-rollback-to-date-sql

+
+
Purpose
+
+

Writes SQL to roll back the database to the state it was in at the given date/time to STDOUT or a file.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date-sql <<date>> <<time>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], +the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-rollback-to-date.html b/5.0.x/ref/Rollback Scripts/dbm-rollback-to-date.html new file mode 100644 index 00000000..df71af1d --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-rollback-to-date.html @@ -0,0 +1,544 @@ + + + + + + + +dbm-rollback-to-date + + + + + + +
+
+

dbm-rollback-to-date

+
+
Purpose
+
+

Rolls back the database to the state it was in at the given date/time.

+
+
+
+
Description
+
+

You can specify just the date, or the date and time. The date format must be yyyy-MM-dd and the time format must be HH:mm:ss.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback-to-date <<date>> <<time>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    date - The rollback date

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    time - The rollback time

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be included

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback-to-date "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Rollback Scripts/dbm-rollback.html b/5.0.x/ref/Rollback Scripts/dbm-rollback.html new file mode 100644 index 00000000..66b0a563 --- /dev/null +++ b/5.0.x/ref/Rollback Scripts/dbm-rollback.html @@ -0,0 +1,541 @@ + + + + + + + +dbm-rollback + + + + + + +
+
+

dbm-rollback

+
+
Purpose
+
+

Rolls back the database to the state it was in when the tag was applied.

+
+
+
+
Description
+
+

Requires that the named tag exists. You can create tags with the dbm-tag script.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-rollback <<tagName>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    tagName - The name of the tag to use

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-rollback "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Update Scripts/dbm-previous-changeset-sql.html b/5.0.x/ref/Update Scripts/dbm-previous-changeset-sql.html new file mode 100644 index 00000000..9c0058e0 --- /dev/null +++ b/5.0.x/ref/Update Scripts/dbm-previous-changeset-sql.html @@ -0,0 +1,527 @@ + + + + + + + +dbm-previous-changeset-sql + + + + + + +
+
+

dbm-previous-changeset-sql

+
+
Purpose
+
+

Writes the SQL to STDOUT or a file for the specified number of previous changesets whether they have run or not.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-previous-changeset-sql <<number>> <<filename>> --skip=<<skip>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    skip - The number of changesets to skip if you want to exclude recent ones

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>"
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Update Scripts/dbm-update-count-sql.html b/5.0.x/ref/Update Scripts/dbm-update-count-sql.html new file mode 100644 index 00000000..f56831fa --- /dev/null +++ b/5.0.x/ref/Update Scripts/dbm-update-count-sql.html @@ -0,0 +1,547 @@ + + + + + + + +dbm-update-count-sql + + + + + + +
+
+

dbm-update-count-sql

+
+
Purpose
+
+

Writes the SQL that will partially update a database to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for the specifed number of changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count-sql <<number>> <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Update Scripts/dbm-update-count.html b/5.0.x/ref/Update Scripts/dbm-update-count.html new file mode 100644 index 00000000..cbd74f1a --- /dev/null +++ b/5.0.x/ref/Update Scripts/dbm-update-count.html @@ -0,0 +1,541 @@ + + + + + + + +dbm-update-count + + + + + + +
+
+

dbm-update-count

+
+
Purpose
+
+

Partially updates a database.

+
+
+
+
Description
+
+

Runs the specifed number of un-run changesets from the Changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-count <<number>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments:

+
+
+
    +
  • +

    number - The number of un-run changesets to run

    +
  • +
+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-count "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Update Scripts/dbm-update-sql.html b/5.0.x/ref/Update Scripts/dbm-update-sql.html new file mode 100644 index 00000000..dfc8555b --- /dev/null +++ b/5.0.x/ref/Update Scripts/dbm-update-sql.html @@ -0,0 +1,540 @@ + + + + + + + +dbm-update-sql + + + + + + +
+
+

dbm-update-sql

+
+
Purpose
+
+

Writes the SQL that will update the database to the current version to STDOUT or a file.

+
+
+
+
Description
+
+

Generates SQL for all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

This is useful for inspecting the generated SQL before running an update, or to generate SQL which can be tuned before running manually.

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update-sql <<filename>> --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    filename - The path to the output file to write to. If not specified output is written to the console

    +
  • +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts, defaultSchema, and dataSource parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update-sql "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" --dataSource=<<dataSource>>
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/5.0.x/ref/Update Scripts/dbm-update.html b/5.0.x/ref/Update Scripts/dbm-update.html new file mode 100644 index 00000000..05ba1f5f --- /dev/null +++ b/5.0.x/ref/Update Scripts/dbm-update.html @@ -0,0 +1,534 @@ + + + + + + + +dbm-update + + + + + + +
+
+

dbm-update

+
+
Purpose
+
+

Updates a database to the current version.

+
+
+
+
Description
+
+

Runs all un-run changeSets from the changelog. Executes against the database configured in application.[yml|groovy] for the current environment (defaults to dev).

+
+
+

Usage:

+
+
+
+
grails <<environment>> dbm-update --contexts=<<contexts>> --defaultSchema=<<defaultSchema>> --dataSource=<<dataSource>>
+
+
+
+

Required arguments: none .

+
+
+

Optional arguments:

+
+
+
    +
  • +

    contexts - A comma-delimited list of context names. If specified, only changesets tagged with one of the context names will be run

    +
  • +
  • +

    defaultSchema - The default schema name to use

    +
  • +
  • +

    dataSource - if provided will run the script for the specified dataSource. Not needed for the default dataSource.

    +
  • +
+
+
+ + + + + +
+ + +Note that the contexts and defaultSchema parameter name and value must be quoted if executed in Windows, e.g. +
+
+
+
+
grails dbm-update "--contexts=<<contexts>>" "--defaultSchema=<<defaultSchema>>" "--dataSource=<<dataSource>>"
+
+
+
+ + + + + +
+ + +For the dataSource parameter, if the data source is configured as reports underneath the dataSources key in application.[yml|groovy], the value should be reports. +
+
+
+
+
--dataSource=reports
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/latest/api/deprecated-list.html b/latest/api/deprecated-list.html index 7447a1a5..6d06f5f2 100644 --- a/latest/api/deprecated-list.html +++ b/latest/api/deprecated-list.html @@ -24,7 +24,7 @@ - Deprecated API (database-migration 4.2.1 API) + Deprecated API (database-migration 5.0.0 API) @@ -34,7 +34,7 @@ diff --git a/latest/api/help-doc.html b/latest/api/help-doc.html index 7007378f..75082089 100644 --- a/latest/api/help-doc.html +++ b/latest/api/help-doc.html @@ -25,7 +25,7 @@ - API Help (database-migration 4.2.1 API) + API Help (database-migration 5.0.0 API) @@ -34,7 +34,7 @@ diff --git a/latest/api/index-all.html b/latest/api/index-all.html index 174c905e..088f1d5b 100644 --- a/latest/api/index-all.html +++ b/latest/api/index-all.html @@ -24,14 +24,14 @@ - Index (database-migration 4.2.1 API) + Index (database-migration 5.0.0 API) diff --git a/latest/api/index.html b/latest/api/index.html index db6ad509..6dabcf8e 100644 --- a/latest/api/index.html +++ b/latest/api/index.html @@ -21,7 +21,7 @@ -Index (database-migration 4.2.1 API) +Index (database-migration 5.0.0 API) diff --git a/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html b/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html index c773c9c5..fab0dad4 100644 --- a/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html +++ b/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationException.html @@ -27,7 +27,7 @@ - DatabaseMigrationException (Grails Database Migration Plugin 4.2.1) + DatabaseMigrationException (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -167,7 +167,7 @@

Inherited Methods Summary

class java.lang.RuntimeException - java.lang.RuntimeException#printStackTrace(java.io.PrintStream), java.lang.RuntimeException#printStackTrace(), java.lang.RuntimeException#printStackTrace(java.io.PrintWriter), java.lang.RuntimeException#fillInStackTrace(), java.lang.RuntimeException#getCause(), java.lang.RuntimeException#initCause(java.lang.Throwable), java.lang.RuntimeException#toString(), java.lang.RuntimeException#getMessage(), java.lang.RuntimeException#getLocalizedMessage(), java.lang.RuntimeException#getStackTrace(), java.lang.RuntimeException#setStackTrace([Ljava.lang.StackTraceElement;), java.lang.RuntimeException#addSuppressed(java.lang.Throwable), java.lang.RuntimeException#getSuppressed(), java.lang.RuntimeException#wait(long, int), java.lang.RuntimeException#wait(long), java.lang.RuntimeException#wait(), java.lang.RuntimeException#equals(java.lang.Object), java.lang.RuntimeException#hashCode(), java.lang.RuntimeException#getClass(), java.lang.RuntimeException#notify(), java.lang.RuntimeException#notifyAll() + java.lang.RuntimeException#printStackTrace(), java.lang.RuntimeException#printStackTrace(java.io.PrintWriter), java.lang.RuntimeException#printStackTrace(java.io.PrintStream), java.lang.RuntimeException#fillInStackTrace(), java.lang.RuntimeException#getCause(), java.lang.RuntimeException#initCause(java.lang.Throwable), java.lang.RuntimeException#toString(), java.lang.RuntimeException#getMessage(), java.lang.RuntimeException#getSuppressed(), java.lang.RuntimeException#getLocalizedMessage(), java.lang.RuntimeException#getStackTrace(), java.lang.RuntimeException#setStackTrace([Ljava.lang.StackTraceElement;), java.lang.RuntimeException#addSuppressed(java.lang.Throwable), java.lang.RuntimeException#wait(long), java.lang.RuntimeException#wait(long, int), java.lang.RuntimeException#wait(), java.lang.RuntimeException#equals(java.lang.Object), java.lang.RuntimeException#hashCode(), java.lang.RuntimeException#getClass(), java.lang.RuntimeException#notify(), java.lang.RuntimeException#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html b/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html index 98cc7f6f..e99a9ac9 100644 --- a/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html +++ b/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationGrailsPlugin.html @@ -27,7 +27,7 @@ - DatabaseMigrationGrailsPlugin (Grails Database Migration Plugin 4.2.1) + DatabaseMigrationGrailsPlugin (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ diff --git a/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html b/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html index 1f20d7c6..d559068b 100644 --- a/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html +++ b/latest/api/org/grails/plugins/databasemigration/DatabaseMigrationTransactionManager.html @@ -27,7 +27,7 @@ - DatabaseMigrationTransactionManager (Grails Database Migration Plugin 4.2.1) + DatabaseMigrationTransactionManager (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -248,7 +248,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html b/latest/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html index 6aed87ff..d38e1126 100644 --- a/latest/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html +++ b/latest/api/org/grails/plugins/databasemigration/EnvironmentAwareCodeGenConfig.html @@ -27,7 +27,7 @@ - EnvironmentAwareCodeGenConfig (Grails Database Migration Plugin 4.2.1) + EnvironmentAwareCodeGenConfig (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ diff --git a/latest/api/org/grails/plugins/databasemigration/NoopVisitor.html b/latest/api/org/grails/plugins/databasemigration/NoopVisitor.html index c67f4165..ba17230d 100644 --- a/latest/api/org/grails/plugins/databasemigration/NoopVisitor.html +++ b/latest/api/org/grails/plugins/databasemigration/NoopVisitor.html @@ -27,7 +27,7 @@ - NoopVisitor (Grails Database Migration Plugin 4.2.1) + NoopVisitor (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -223,7 +223,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/PluginConstants.html b/latest/api/org/grails/plugins/databasemigration/PluginConstants.html index 48e0a27e..736f3847 100644 --- a/latest/api/org/grails/plugins/databasemigration/PluginConstants.html +++ b/latest/api/org/grails/plugins/databasemigration/PluginConstants.html @@ -27,7 +27,7 @@ - PluginConstants (Grails Database Migration Plugin 4.2.1) + PluginConstants (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -197,7 +197,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html b/latest/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html index 3be05b4d..812dd9e7 100644 --- a/latest/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html +++ b/latest/api/org/grails/plugins/databasemigration/command/ApplicationContextDatabaseMigrationCommand.html @@ -27,7 +27,7 @@ - ApplicationContextDatabaseMigrationCommand (Grails Database Migration Plugin 4.2.1) + ApplicationContextDatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -241,7 +241,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html b/latest/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html index 23549847..174e6333 100644 --- a/latest/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html +++ b/latest/api/org/grails/plugins/databasemigration/command/DatabaseMigrationCommand.html @@ -27,7 +27,7 @@ - DatabaseMigrationCommand (Grails Database Migration Plugin 4.2.1) + DatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -341,7 +341,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html b/latest/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html index 051aca57..6b7cb9fb 100644 --- a/latest/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html +++ b/latest/api/org/grails/plugins/databasemigration/command/DbmChangelogToGroovy.html @@ -27,7 +27,7 @@ - DbmChangelogToGroovy (Grails Database Migration Plugin 4.2.1) + DbmChangelogToGroovy (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -194,7 +194,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html b/latest/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html index a67134b1..4119d98e 100644 --- a/latest/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html +++ b/latest/api/org/grails/plugins/databasemigration/command/DbmCreateChangelog.html @@ -27,7 +27,7 @@ - DbmCreateChangelog (Grails Database Migration Plugin 4.2.1) + DbmCreateChangelog (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -194,7 +194,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html b/latest/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html index f7e288ee..8d1b1ead 100644 --- a/latest/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html +++ b/latest/api/org/grails/plugins/databasemigration/command/ScriptDatabaseMigrationCommand.html @@ -27,7 +27,7 @@ - ScriptDatabaseMigrationCommand (Grails Database Migration Plugin 4.2.1) + ScriptDatabaseMigrationCommand (Grails Database Migration Plugin 5.0.0) @@ -37,7 +37,7 @@ @@ -228,7 +228,7 @@

Inherited Methods Summary

class java.lang.Object - java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() + java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() diff --git a/latest/api/org/grails/plugins/databasemigration/command/package-summary.html b/latest/api/org/grails/plugins/databasemigration/command/package-summary.html index b69257df..8ab3b637 100644 --- a/latest/api/org/grails/plugins/databasemigration/command/package-summary.html +++ b/latest/api/org/grails/plugins/databasemigration/command/package-summary.html @@ -22,7 +22,7 @@ -org.grails.plugins.databasemigration.command (database-migration 4.2.1 API) +org.grails.plugins.databasemigration.command (database-migration 5.0.0 API) @@ -31,7 +31,7 @@