Package liquibase.database.core
Class H2Database
java.lang.Object
liquibase.database.AbstractJdbcDatabase
liquibase.database.core.H2Database
- All Implemented Interfaces:
AutoCloseable,Database,PrioritizedService
-
Field Summary
FieldsModifier and TypeFieldDescriptionFields inherited from class liquibase.database.AbstractJdbcDatabase
caseSensitive, currentDateTimeFunction, dateFunctions, defaultAutoIncrementBy, defaultAutoIncrementStartWith, defaultCatalogName, defaultSchemaName, quotingStrategy, sequenceCurrentValueFunction, sequenceNextValueFunction, unmodifiableDataTypes, unquotedObjectsAreUppercasedFields inherited from interface liquibase.database.Database
COMPLETE_SQL_SCOPE_KEY, IGNORE_MISSING_REFERENCES_KEYFields inherited from interface liquibase.servicelocator.PrioritizedService
COMPARATOR, PRIORITY_DATABASE, PRIORITY_DEFAULT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncorrectObjectName(String objectName, Class<? extends DatabaseObject> objectType) Fix the object name to the format the database expects, handling changes in case, etc.booleanescapeObjectName(String objectName, Class<? extends DatabaseObject> objectType) protected Stringprotected StringgetAutoIncrementClause(BigInteger startWith, BigInteger incrementBy, String generationType, Boolean defaultOnNull) Returns database-specific auto-increment DDL clause.protected StringgetConcatSql(String... values) Returns SQL to concat the passed values.protected StringOverwrite this method to get the default schema name for the connection.getDateLiteral(String isoDate) Return a date literal with the same value as a string formatted using ISO 8601.protected StringgetDefaultDriver(String url) If this database understands the given url, return the default driver class name.intMost relational databases support 9 fractional digits, and subclasses must overwrite this method if they support less than that.intReturns an all-lower-case short name of the product.getViewDefinition(CatalogAndSchema schema, String name) booleanIs this AbstractDatabase subclass the correct one to use for the given connection.booleanisReservedWord(String objectName) booleanDefault implementation of theAbstractJdbcDatabase.isSafeToRunUpdate()method.protected booleanmustQuoteObjectName(String objectName, Class<? extends DatabaseObject> objectType) voidbooleansupportsCreateIfNotExists(Class<? extends DatabaseObject> type) Does the database support the "if not exits" syntax?booleanDoes the particular database implementation support the database changelog history feature and associated table?booleanbooleanReturns whether this database support initially deferrable columns.booleanbooleanDoes the database type support sequence.booleanMethods inherited from class liquibase.database.AbstractJdbcDatabase
addReservedWords, canCreateChangeLogTable, close, commit, correctSchema, correctSchema, dataTypeIsNotModifiable, disableForeignKeyChecks, doesTagExist, dropDatabaseObjects, enableForeignKeyChecks, equals, escapeColumnName, escapeColumnName, escapeColumnNameList, escapeConstraintName, escapeDataTypeName, escapeIndexName, escapeObjectName, escapeSequenceName, escapeStringForDatabase, escapeTableName, escapeViewName, execute, executeRollbackStatements, executeRollbackStatements, executeStatements, filterRollbackVisitors, generateAutoIncrementBy, generateAutoIncrementStartWith, generateDatabaseFunctionValue, generatePrimaryKeyName, get, getAutoCommitMode, getAutoIncrementClause, getAutoIncrementClosing, getAutoIncrementOpening, getConnection, getConnectionCatalogName, getConnectionSchemaNameCallStatement, getContainingObjects, getCurrentDateTimeFunction, getDatabaseChangeLogLockTableName, getDatabaseChangeLogTableName, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDataTypeMaxParameters, getDateFunctions, getDateLiteral, getDateLiteral, getDateTimeLiteral, getDefaultCatalogName, getDefaultFractionalDigitsForTimestamp, getDefaultScaleForNativeDataType, getDefaultSchema, getDefaultSchemaName, getFetchSize, getJdbcCatalogName, getJdbcCatalogName, getJdbcSchemaName, getJdbcSchemaName, getLineComment, getLiquibaseCatalogName, getLiquibaseSchemaName, getLiquibaseTablespaceName, getName, getObjectQuotingStrategy, getOutputDefaultCatalog, getOutputDefaultSchema, getQuotingEndCharacter, getQuotingEndReplacement, getQuotingStartCharacter, getRanChangeSet, getRanChangeSetList, getRanDate, getRawDatabaseChangeLogLockTableName, getRawDatabaseChangeLogTableName, getRunStatus, getSchemaAndCatalogCase, getSchemaFromJdbcInfo, getSystemSchema, getSystemTables, getSystemViews, getTimeLiteral, hashCode, isAutoCommit, isCaseSensitive, isCatalogOrSchemaType, isCurrentTimeFunction, isDateOnly, isDateTime, isDefaultCatalog, isDefaultSchema, isFunction, isLiquibaseObject, isSystemObject, isSystemView, isTimeOnly, isTimestamp, jdbcCallsCatalogsSchemas, markChangeSetExecStatus, quoteObject, removeRanStatus, requiresExplicitNullForColumns, requiresPassword, requiresUsername, resetInternalState, rollback, saveRollbackStatement, saveStatements, set, setAutoCommit, setCanCacheLiquibaseTableInfo, setCaseSensitive, setCurrentDateTimeFunction, setDatabaseChangeLogLockTableName, setDatabaseChangeLogTableName, setDefaultCatalogName, setDefaultSchemaName, setLiquibaseCatalogName, setLiquibaseSchemaName, setLiquibaseTablespaceName, setObjectQuotingStrategy, setOutputDefaultCatalog, setOutputDefaultSchema, setPreviousAutoCommit, startsWithNumeric, supportsAutoIncrement, supportsBatchUpdates, supportsCatalogInObjectName, supportsCatalogs, supportsDDLInTransaction, supportsForeignKeyDisable, supportsNotNullConstraintNames, supportsPrimaryKeyNames, supportsRestrictForeignKeys, supportsSchemas, tag, toString, unescapeDataTypeName, unescapeDataTypeString, validateMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface liquibase.database.Database
addCompleteSqlToScope, afterUpdate, checkDatabaseConnection, dropDatabaseObjects, escapeForLike, failOnDefferable, generateConnectCommandSuccessMessage, getDisplayName, supports, temporarilySetObjectQuotingStrategy
-
Field Details
-
V2_RESERVED_WORDS
-
V1_RESERVED_WORDS
-
-
Constructor Details
-
H2Database
public H2Database()
-
-
Method Details
-
getShortName
Description copied from interface:DatabaseReturns an all-lower-case short name of the product. Used for end-user selecting of database type such as the DBMS precondition. -
getDefaultPort
-
getDefaultDatabaseProductName
- Specified by:
getDefaultDatabaseProductNamein classAbstractJdbcDatabase
-
getDefaultDriver
Description copied from interface:DatabaseIf this database understands the given url, return the default driver class name. Otherwise return null. -
getPriority
public int getPriority() -
isCorrectDatabaseImplementation
Description copied from interface:DatabaseIs this AbstractDatabase subclass the correct one to use for the given connection.- Throws:
DatabaseException
-
supportsTablespaces
public boolean supportsTablespaces() -
getViewDefinition
- Specified by:
getViewDefinitionin interfaceDatabase- Overrides:
getViewDefinitionin classAbstractJdbcDatabase- Throws:
DatabaseException
-
parseDate
- Specified by:
parseDatein interfaceDatabase- Overrides:
parseDatein classAbstractJdbcDatabase- Throws:
DateParseException
-
isSafeToRunUpdate
Description copied from class:AbstractJdbcDatabaseDefault implementation of theAbstractJdbcDatabase.isSafeToRunUpdate()method. It checks if the database connection URL contains "localhost" or "127.0.0.1". If the database returns anullURL, the method returnsfalsebecause it's not known whether it's safe to run the update.- Specified by:
isSafeToRunUpdatein interfaceDatabase- Overrides:
isSafeToRunUpdatein classAbstractJdbcDatabase- Returns:
trueif the database connection URL contains "localhost" or "127.0.0.1", otherwisefalse.- Throws:
DatabaseException- if there is an error accessing the database
-
supportsSequences
public boolean supportsSequences()Description copied from class:AbstractJdbcDatabaseDoes the database type support sequence.- Specified by:
supportsSequencesin interfaceDatabase- Overrides:
supportsSequencesin classAbstractJdbcDatabase
-
getConnectionSchemaName
Description copied from class:AbstractJdbcDatabaseOverwrite this method to get the default schema name for the connection. If you only need to change the statement that obtains the current schema then override- Overrides:
getConnectionSchemaNamein classAbstractJdbcDatabase- See Also:
-
getConcatSql
Description copied from interface:DatabaseReturns SQL to concat the passed values.- Specified by:
getConcatSqlin interfaceDatabase- Overrides:
getConcatSqlin classAbstractJdbcDatabase
-
getDateLiteral
Description copied from class:AbstractJdbcDatabaseReturn a date literal with the same value as a string formatted using ISO 8601. Note: many databases accept date literals in ISO8601 format with the 'T' replaced with a space. Only databases which do not accept these strings should need to override this method. Implementation restriction: Currently, only the following subsets of ISO8601 are supported: yyyy-MM-dd hh:mm:ss yyyy-MM-ddThh:mm:ss- Specified by:
getDateLiteralin interfaceDatabase- Overrides:
getDateLiteralin classAbstractJdbcDatabase
-
isReservedWord
- Specified by:
isReservedWordin interfaceDatabase- Overrides:
isReservedWordin classAbstractJdbcDatabase
-
getReservedWords
-
correctObjectName
Description copied from interface:DatabaseFix the object name to the format the database expects, handling changes in case, etc.- Specified by:
correctObjectNamein interfaceDatabase- Overrides:
correctObjectNamein classAbstractJdbcDatabase
-
escapeObjectName
- Specified by:
escapeObjectNamein interfaceDatabase- Overrides:
escapeObjectNamein classAbstractJdbcDatabase
-
mustQuoteObjectName
protected boolean mustQuoteObjectName(String objectName, Class<? extends DatabaseObject> objectType) - Overrides:
mustQuoteObjectNamein classAbstractJdbcDatabase
-
supportsInitiallyDeferrableColumns
public boolean supportsInitiallyDeferrableColumns()Description copied from interface:DatabaseReturns whether this database support initially deferrable columns. -
getAutoIncrementClause
- Overrides:
getAutoIncrementClausein classAbstractJdbcDatabase
-
getAutoIncrementStartWithClause
- Overrides:
getAutoIncrementStartWithClausein classAbstractJdbcDatabase
-
getAutoIncrementByClause
- Overrides:
getAutoIncrementByClausein classAbstractJdbcDatabase
-
getAutoIncrementClause
public String getAutoIncrementClause(BigInteger startWith, BigInteger incrementBy, String generationType, Boolean defaultOnNull) Description copied from interface:DatabaseReturns database-specific auto-increment DDL clause.- Specified by:
getAutoIncrementClausein interfaceDatabase- Overrides:
getAutoIncrementClausein classAbstractJdbcDatabase
-
createsIndexesForForeignKeys
public boolean createsIndexesForForeignKeys()- Specified by:
createsIndexesForForeignKeysin interfaceDatabase- Overrides:
createsIndexesForForeignKeysin classAbstractJdbcDatabase
-
supportsDropTableCascadeConstraints
public boolean supportsDropTableCascadeConstraints()- Specified by:
supportsDropTableCascadeConstraintsin interfaceDatabase- Overrides:
supportsDropTableCascadeConstraintsin classAbstractJdbcDatabase
-
setConnection
- Specified by:
setConnectionin interfaceDatabase- Overrides:
setConnectionin classAbstractJdbcDatabase
-
supportsMinMaxForSequences
public boolean supportsMinMaxForSequences() -
getMaxFractionalDigitsForTimestamp
public int getMaxFractionalDigitsForTimestamp()Description copied from class:AbstractJdbcDatabaseMost relational databases support 9 fractional digits, and subclasses must overwrite this method if they support less than that.- Specified by:
getMaxFractionalDigitsForTimestampin interfaceDatabase- Overrides:
getMaxFractionalDigitsForTimestampin classAbstractJdbcDatabase- Returns:
- the maximum number of supported fractional digits in TIMESTAMP columns
-
supportsCreateIfNotExists
Description copied from interface:DatabaseDoes the database support the "if not exits" syntax?- Parameters:
type- the DatabaseObject type to be checked.- Returns:
- true if the "if not exists" syntax is supported, false otherwise.
-
supportsDatabaseChangeLogHistory
public boolean supportsDatabaseChangeLogHistory()Description copied from interface:DatabaseDoes the particular database implementation support the database changelog history feature and associated table?- Returns:
- true if supported, false otherwise
-