When upgrading to Spring Boot 3 and Hibernate 6, it seems like property hibernate.hbm2ddl.schema_filter_provider doesn't work properly. I have a custom implementation of SchemaFilterProvider that excludes my_table from validation, and I set the hibernate.hbm2ddl.schema_filter_provider property to use it. I get this error:
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [my_table]
After debugging it, I found that DefaultSchemaFilter.INSTANCE is in use, and the above property is not being considered:
Validation is done here:
    protected void validateTables(
            Metadata metadata,
            DatabaseInformation databaseInformation,
            ExecutionOptions options,
            ContributableMatcher contributableInclusionFilter,
            Dialect dialect, Namespace namespace) {
        final NameSpaceTablesInformation tables = databaseInformation.getTablesInformation( namespace );
        for ( Table table : namespace.getTables() ) {
            if ( options.getSchemaFilter().includeTable( table )
                    && table.isPhysicalTable()
                    && contributableInclusionFilter.matches( table ) ) {
                validateTable(
                        table,
                        tables.getTableInformation( table ),
                        metadata,
                        options,
                        dialect
                );
            }
        }
    }
and options is built here:
    public static ExecutionOptions buildExecutionOptions(
            final Map<String,Object> configurationValues,
            final ExceptionHandler exceptionHandler) {
        return buildExecutionOptions(
                configurationValues,
                DefaultSchemaFilter.INSTANCE,
                exceptionHandler
        );
    }
Meaning DefaultSchemaFilter.INSTANCE will always be in use.
There's an open bug to Hibernate with no response: https://hibernate.atlassian.net/browse/HBX-2476
How should I exclude my_table from validation?
