2016-06-17 5 views
1

Я использую пролетного пути 4,0, спящий режим 5.1.0.Final и 2 базы данных: PostGreSQL 9.4.1208 и HSQLDB 2.3.1 (для теста)пролетный путь версии булева бит схемы и проверить вопрос

Нам необходимо контролировать состояние базы данных о наше приложение. Я создаю SchemaVersionEntity проверить базу данных (версию сценария и состояние успеха последнего сценария) успех столбца объекта имеет типа Boolean

Мы делаем JPA проверки: в пролетном пути PostGreSQL createMetaDataTable успеха Карта булев: https://github.com/flyway/flyway/blob/master/flyway-core/src/main/resources/org/flywaydb/core/internal/dbsupport/postgresql/createMetaDataTable.sql

в пролетном пути HSQL createMetaDataTable успеха Карта биту: (булев существует с v2) https://github.com/flyway/flyway/blob/master/flyway-core/src/main/resources/org/flywaydb/core/internal/dbsupport/hsql/createMetaDataTable.sql

Так я получаю ошибку:

org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [success] in table [schema_version]; found [bit (Types#BIT)], but expecting [boolean (Types#BOOLEAN)]

Какое оптимальное решение? Изменить пролет \ flyway-core \ src \ main \ resources \ org \ flywaydb \ core \ internal \ dbsupport \ hsql?

"success" BOOLEAN NOT NULL 
+0

Вы можете настроить H2Dialect и использовать его в тестовой конфигурации. –

ответ

0

Вы можете настроить H2Dialect и использовать его в Test Configuration

public class CustomH2Dialect extends H2Dialect { 

    public CustomH2Dialect() { 
     super(); 
     registerColumnType(Types.BOOLEAN, "bit"); 
    } 
} 
+0

Да, я уже пробовал, но это означает, что каждый бит должен отображаться в boolean. Вы знаете, как объявить тип столбца только одному столбцу из одной таблицы? – ebret