2016-06-17 8 views
1

Ich benutze flyway 4.0, Hibernate 5.1.0.Final und 2 Datenbanken: postgresql 1208.09.04 und hsqldb 2.3.1 (für Test)Flyway boolean Bit-Schema-Version und validieren Problem

Wir brauchen Bankstatus zu überwachen unsere Anwendung. Ich erstelle eine SchemaVersionEntity Datenbank (Version des Skriptes und des Status Erfolg des letzten Skript) zu überprüfen Entität Spalte Erfolg ist vom Typ Boolean

Wir tun JPA-Validierung: in flyway postgresql createMetaDataTable Erfolg Karte boolean ist: https://github.com/flyway/flyway/blob/master/flyway-core/src/main/resources/org/flywaydb/core/internal/dbsupport/postgresql/createMetaDataTable.sql

in createMetaDataTable Erfolg hsql Zugweg ist Karte Bit: (boolean seit v2 existiert) https://github.com/flyway/flyway/blob/master/flyway-core/src/main/resources/org/flywaydb/core/internal/dbsupport/hsql/createMetaDataTable.sql

So bekomme ich einen Fehler:

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)]

Was ist die beste Lösung? Ändern Sie den Wegway \ croweway \ src \ main \ resources \ org \ flywaydb \ core \ intern \ dbsupport \ hsql?

"success" BOOLEAN NOT NULL 
+0

Sie können H2Dialect anpassen und in Test-Konfiguration verwenden. –

Antwort

0

Sie können H2Dialect anpassen und verwenden Sie es in Testkonfiguration

public class CustomH2Dialect extends H2Dialect { 

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

Ja, ich habe es bereits versucht, aber das bedeutet, dass jedes Bit auf Boolean abgebildet werden sollte. Wissen Sie, wie Sie den Spaltentyp nur für eine Spalte einer Tabelle deklarieren? – ebret

Verwandte Themen