Class AbstractNoSqlDatabase

  • All Implemented Interfaces:
    liquibase.database.Database, liquibase.servicelocator.PrioritizedService
    Direct Known Subclasses:
    CosmosLiquibaseDatabase

    public abstract class AbstractNoSqlDatabase
    extends liquibase.database.AbstractJdbcDatabase
    implements liquibase.database.Database
    AbstractNoSqlDatabase is extended by all supported NoSql databases as a facade to the underlying database. The physical connection can be retrieved from the AbstractNoSqlDatabase implementation, as well as any database-specific characteristics.
    • Constructor Detail

      • AbstractNoSqlDatabase

        public AbstractNoSqlDatabase()
    • Method Detail

      • getPriority

        public int getPriority()
        Specified by:
        getPriority in interface liquibase.servicelocator.PrioritizedService
      • supportsInitiallyDeferrableColumns

        public boolean supportsInitiallyDeferrableColumns()
        Specified by:
        supportsInitiallyDeferrableColumns in interface liquibase.database.Database
      • supportsSequences

        public boolean supportsSequences()
        Specified by:
        supportsSequences in interface liquibase.database.Database
        Overrides:
        supportsSequences in class liquibase.database.AbstractJdbcDatabase
      • supportsDropTableCascadeConstraints

        public boolean supportsDropTableCascadeConstraints()
        Specified by:
        supportsDropTableCascadeConstraints in interface liquibase.database.Database
        Overrides:
        supportsDropTableCascadeConstraints in class liquibase.database.AbstractJdbcDatabase
      • supportsAutoIncrement

        public boolean supportsAutoIncrement()
        Specified by:
        supportsAutoIncrement in interface liquibase.database.Database
        Overrides:
        supportsAutoIncrement in class liquibase.database.AbstractJdbcDatabase
      • getLineComment

        public String getLineComment()
        Specified by:
        getLineComment in interface liquibase.database.Database
        Overrides:
        getLineComment in class liquibase.database.AbstractJdbcDatabase
      • getAutoIncrementClause

        public String getAutoIncrementClause​(BigInteger startWith,
                                             BigInteger incrementBy,
                                             String generationType,
                                             Boolean defaultOnNull)
        Specified by:
        getAutoIncrementClause in interface liquibase.database.Database
        Overrides:
        getAutoIncrementClause in class liquibase.database.AbstractJdbcDatabase
      • isSystemObject

        public boolean isSystemObject​(liquibase.structure.DatabaseObject example)
        Specified by:
        isSystemObject in interface liquibase.database.Database
        Overrides:
        isSystemObject in class liquibase.database.AbstractJdbcDatabase
      • isLiquibaseObject

        public boolean isLiquibaseObject​(liquibase.structure.DatabaseObject object)
        Specified by:
        isLiquibaseObject in interface liquibase.database.Database
        Overrides:
        isLiquibaseObject in class liquibase.database.AbstractJdbcDatabase
      • getViewDefinition

        public String getViewDefinition​(liquibase.CatalogAndSchema schema,
                                        String name)
        Specified by:
        getViewDefinition in interface liquibase.database.Database
        Overrides:
        getViewDefinition in class liquibase.database.AbstractJdbcDatabase
      • escapeObjectName

        public String escapeObjectName​(String catalogName,
                                       String schemaName,
                                       String objectName,
                                       Class<? extends liquibase.structure.DatabaseObject> objectType)
        Specified by:
        escapeObjectName in interface liquibase.database.Database
        Overrides:
        escapeObjectName in class liquibase.database.AbstractJdbcDatabase
      • escapeTableName

        public String escapeTableName​(String catalogName,
                                      String schemaName,
                                      String tableName)
        Specified by:
        escapeTableName in interface liquibase.database.Database
        Overrides:
        escapeTableName in class liquibase.database.AbstractJdbcDatabase
      • escapeIndexName

        public String escapeIndexName​(String catalogName,
                                      String schemaName,
                                      String indexName)
        Specified by:
        escapeIndexName in interface liquibase.database.Database
        Overrides:
        escapeIndexName in class liquibase.database.AbstractJdbcDatabase
      • escapeObjectName

        public String escapeObjectName​(String objectName,
                                       Class<? extends liquibase.structure.DatabaseObject> objectType)
        Specified by:
        escapeObjectName in interface liquibase.database.Database
        Overrides:
        escapeObjectName in class liquibase.database.AbstractJdbcDatabase
      • escapeColumnName

        public String escapeColumnName​(String catalogName,
                                       String schemaName,
                                       String tableName,
                                       String columnName)
        Specified by:
        escapeColumnName in interface liquibase.database.Database
        Overrides:
        escapeColumnName in class liquibase.database.AbstractJdbcDatabase
      • escapeColumnNameList

        public String escapeColumnNameList​(String columnNames)
        Specified by:
        escapeColumnNameList in interface liquibase.database.Database
        Overrides:
        escapeColumnNameList in class liquibase.database.AbstractJdbcDatabase
      • supportsTablespaces

        public boolean supportsTablespaces()
        Specified by:
        supportsTablespaces in interface liquibase.database.Database
      • supportsCatalogs

        public boolean supportsCatalogs()
        Specified by:
        supportsCatalogs in interface liquibase.database.Database
        Overrides:
        supportsCatalogs in class liquibase.database.AbstractJdbcDatabase
      • getSchemaAndCatalogCase

        public liquibase.CatalogAndSchema.CatalogAndSchemaCase getSchemaAndCatalogCase()
        Specified by:
        getSchemaAndCatalogCase in interface liquibase.database.Database
        Overrides:
        getSchemaAndCatalogCase in class liquibase.database.AbstractJdbcDatabase
      • supportsSchemas

        public boolean supportsSchemas()
        Specified by:
        supportsSchemas in interface liquibase.database.Database
        Overrides:
        supportsSchemas in class liquibase.database.AbstractJdbcDatabase
      • supportsCatalogInObjectName

        public boolean supportsCatalogInObjectName​(Class<? extends liquibase.structure.DatabaseObject> type)
        Specified by:
        supportsCatalogInObjectName in interface liquibase.database.Database
        Overrides:
        supportsCatalogInObjectName in class liquibase.database.AbstractJdbcDatabase
      • generatePrimaryKeyName

        public String generatePrimaryKeyName​(String tableName)
        Specified by:
        generatePrimaryKeyName in interface liquibase.database.Database
        Overrides:
        generatePrimaryKeyName in class liquibase.database.AbstractJdbcDatabase
      • escapeSequenceName

        public String escapeSequenceName​(String catalogName,
                                         String schemaName,
                                         String sequenceName)
        Specified by:
        escapeSequenceName in interface liquibase.database.Database
        Overrides:
        escapeSequenceName in class liquibase.database.AbstractJdbcDatabase
      • escapeViewName

        public String escapeViewName​(String catalogName,
                                     String schemaName,
                                     String viewName)
        Specified by:
        escapeViewName in interface liquibase.database.Database
        Overrides:
        escapeViewName in class liquibase.database.AbstractJdbcDatabase
      • escapeStringForDatabase

        public String escapeStringForDatabase​(String string)
        Specified by:
        escapeStringForDatabase in interface liquibase.database.Database
        Overrides:
        escapeStringForDatabase in class liquibase.database.AbstractJdbcDatabase
      • dropDatabaseObjects

        public abstract void dropDatabaseObjects​(liquibase.CatalogAndSchema schemaToDrop)
                                          throws liquibase.exception.LiquibaseException
        Specified by:
        dropDatabaseObjects in interface liquibase.database.Database
        Overrides:
        dropDatabaseObjects in class liquibase.database.AbstractJdbcDatabase
        Throws:
        liquibase.exception.LiquibaseException
      • supportsRestrictForeignKeys

        public boolean supportsRestrictForeignKeys()
        Specified by:
        supportsRestrictForeignKeys in interface liquibase.database.Database
        Overrides:
        supportsRestrictForeignKeys in class liquibase.database.AbstractJdbcDatabase
      • escapeConstraintName

        public String escapeConstraintName​(String constraintName)
        Specified by:
        escapeConstraintName in interface liquibase.database.Database
        Overrides:
        escapeConstraintName in class liquibase.database.AbstractJdbcDatabase
      • getDateFunctions

        public List<liquibase.statement.DatabaseFunction> getDateFunctions()
        Specified by:
        getDateFunctions in interface liquibase.database.Database
        Overrides:
        getDateFunctions in class liquibase.database.AbstractJdbcDatabase
      • supportsForeignKeyDisable

        public boolean supportsForeignKeyDisable()
        Specified by:
        supportsForeignKeyDisable in interface liquibase.database.Database
        Overrides:
        supportsForeignKeyDisable in class liquibase.database.AbstractJdbcDatabase
      • disableForeignKeyChecks

        public boolean disableForeignKeyChecks()
        Specified by:
        disableForeignKeyChecks in interface liquibase.database.Database
        Overrides:
        disableForeignKeyChecks in class liquibase.database.AbstractJdbcDatabase
      • enableForeignKeyChecks

        public void enableForeignKeyChecks()
        Specified by:
        enableForeignKeyChecks in interface liquibase.database.Database
        Overrides:
        enableForeignKeyChecks in class liquibase.database.AbstractJdbcDatabase
      • isCaseSensitive

        public boolean isCaseSensitive()
        Specified by:
        isCaseSensitive in interface liquibase.database.Database
        Overrides:
        isCaseSensitive in class liquibase.database.AbstractJdbcDatabase
      • isReservedWord

        public boolean isReservedWord​(String string)
        Specified by:
        isReservedWord in interface liquibase.database.Database
        Overrides:
        isReservedWord in class liquibase.database.AbstractJdbcDatabase
      • isFunction

        public boolean isFunction​(String string)
        Specified by:
        isFunction in interface liquibase.database.Database
        Overrides:
        isFunction in class liquibase.database.AbstractJdbcDatabase
      • getDataTypeMaxParameters

        public int getDataTypeMaxParameters​(String dataTypeName)
        Specified by:
        getDataTypeMaxParameters in interface liquibase.database.Database
        Overrides:
        getDataTypeMaxParameters in class liquibase.database.AbstractJdbcDatabase
      • dataTypeIsNotModifiable

        public boolean dataTypeIsNotModifiable​(String typeName)
        Specified by:
        dataTypeIsNotModifiable in interface liquibase.database.Database
        Overrides:
        dataTypeIsNotModifiable in class liquibase.database.AbstractJdbcDatabase
      • generateDatabaseFunctionValue

        public String generateDatabaseFunctionValue​(liquibase.statement.DatabaseFunction databaseFunction)
        Specified by:
        generateDatabaseFunctionValue in interface liquibase.database.Database
        Overrides:
        generateDatabaseFunctionValue in class liquibase.database.AbstractJdbcDatabase
      • createsIndexesForForeignKeys

        public boolean createsIndexesForForeignKeys()
        Specified by:
        createsIndexesForForeignKeys in interface liquibase.database.Database
        Overrides:
        createsIndexesForForeignKeys in class liquibase.database.AbstractJdbcDatabase
      • supportsPrimaryKeyNames

        public boolean supportsPrimaryKeyNames()
        Specified by:
        supportsPrimaryKeyNames in interface liquibase.database.Database
        Overrides:
        supportsPrimaryKeyNames in class liquibase.database.AbstractJdbcDatabase
      • supportsNotNullConstraintNames

        public boolean supportsNotNullConstraintNames()
        Specified by:
        supportsNotNullConstraintNames in interface liquibase.database.Database
        Overrides:
        supportsNotNullConstraintNames in class liquibase.database.AbstractJdbcDatabase
      • supportsBatchUpdates

        public boolean supportsBatchUpdates()
        Specified by:
        supportsBatchUpdates in interface liquibase.database.Database
        Overrides:
        supportsBatchUpdates in class liquibase.database.AbstractJdbcDatabase
      • requiresExplicitNullForColumns

        public boolean requiresExplicitNullForColumns()
        Specified by:
        requiresExplicitNullForColumns in interface liquibase.database.Database
        Overrides:
        requiresExplicitNullForColumns in class liquibase.database.AbstractJdbcDatabase
      • getSystemSchema

        public String getSystemSchema()
        Specified by:
        getSystemSchema in interface liquibase.database.Database
        Overrides:
        getSystemSchema in class liquibase.database.AbstractJdbcDatabase
      • escapeDataTypeName

        public String escapeDataTypeName​(String dataTypeName)
        Specified by:
        escapeDataTypeName in interface liquibase.database.Database
        Overrides:
        escapeDataTypeName in class liquibase.database.AbstractJdbcDatabase
      • unescapeDataTypeName

        public String unescapeDataTypeName​(String dataTypeName)
        Specified by:
        unescapeDataTypeName in interface liquibase.database.Database
        Overrides:
        unescapeDataTypeName in class liquibase.database.AbstractJdbcDatabase
      • unescapeDataTypeString

        public String unescapeDataTypeString​(String dataTypeString)
        Specified by:
        unescapeDataTypeString in interface liquibase.database.Database
        Overrides:
        unescapeDataTypeString in class liquibase.database.AbstractJdbcDatabase
      • validate

        public liquibase.exception.ValidationErrors validate()
        Specified by:
        validate in interface liquibase.database.Database
        Overrides:
        validate in class liquibase.database.AbstractJdbcDatabase
      • getDefaultDriver

        public abstract String getDefaultDriver​(String url)
        Specified by:
        getDefaultDriver in interface liquibase.database.Database
      • requiresUsername

        public boolean requiresUsername()
        Specified by:
        requiresUsername in interface liquibase.database.Database
        Overrides:
        requiresUsername in class liquibase.database.AbstractJdbcDatabase
      • requiresPassword

        public boolean requiresPassword()
        Specified by:
        requiresPassword in interface liquibase.database.Database
        Overrides:
        requiresPassword in class liquibase.database.AbstractJdbcDatabase
      • getAutoCommitMode

        public boolean getAutoCommitMode()
        Specified by:
        getAutoCommitMode in interface liquibase.database.Database
        Overrides:
        getAutoCommitMode in class liquibase.database.AbstractJdbcDatabase
      • supportsDDLInTransaction

        public boolean supportsDDLInTransaction()
        Specified by:
        supportsDDLInTransaction in interface liquibase.database.Database
        Overrides:
        supportsDDLInTransaction in class liquibase.database.AbstractJdbcDatabase
      • getDatabaseProductName

        public abstract String getDatabaseProductName()
        Specified by:
        getDatabaseProductName in interface liquibase.database.Database
        Overrides:
        getDatabaseProductName in class liquibase.database.AbstractJdbcDatabase
      • isCorrectDatabaseImplementation

        public boolean isCorrectDatabaseImplementation​(liquibase.database.DatabaseConnection conn)
                                                throws liquibase.exception.DatabaseException
        Specified by:
        isCorrectDatabaseImplementation in interface liquibase.database.Database
        Throws:
        liquibase.exception.DatabaseException
      • toString

        public String toString()
        Overrides:
        toString in class liquibase.database.AbstractJdbcDatabase