2014-10-10 5 views
6

Sto usando il database Postgres. Dopo upgading al graal 2.4.3 ottengo base di dati di modifiche di questo tipo per tutti i campi booleani:Cambio del database non necessario Correlato al booleano dopo il graal 2.4.3 aggiornamento

changeSet(author: "me(generated)", id: "1383573084784-1") { 
    addColumn(tableName: "chapter") { 
     column(defaultValue: true, name: "is_framable", type: "boolean") { 
      constraints(nullable: "false") 
     } 
    } 
} 

isFramable è un campo boolean nella classe dominio Chapter. Anche dopo l'esecuzione di questa migrazione è generato ogni volta da dbm-gorm-diff

ho notato che nelle vecchie versioni di graal ha usato per essere bool anziché boolean nei gruppi di modifiche

Sto usando Hibernate versione 4.3.5.5

+0

Abbiamo lo stesso problema ma nessuna soluzione ancora. Ignoriamo queste voci ... –

+0

Questo può aiutare http://stackoverflow.com/a/14470586 –

+0

C'è qualche novità? – AndreyT

risposta

3

mio soluzione per questo:

Config.groovy

grails.gorm.default.mapping = { 
    "user-type" type: my.hibernate.type.BooleanBitType, class: boolean 
    "user-type" type: my.hibernate.type.BooleanBitType, class: Boolean 
} 

BooleanBitType.java

import my.hibernate.type.descriptor.BooleanBitTypeDescriptor; 
import org.hibernate.type.descriptor.java.BooleanTypeDescriptor; 
import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; 

public class BooleanBitType extends org.hibernate.type.BooleanType { 
    public static final BooleanBitType INSTANCE = new BooleanBitType(); 

    public BooleanBitType() { 
     this(BooleanBitTypeDescriptor.INSTANCE, BooleanTypeDescriptor.INSTANCE); 
    } 

    protected BooleanBitType(SqlTypeDescriptor sqlTypeDescriptor, BooleanTypeDescriptor javaTypeDescriptor) { 
     super(sqlTypeDescriptor, javaTypeDescriptor); 
    } 
} 

BooleanBitTypeDescriptor.java

public class BooleanBitTypeDescriptor extends org.hibernate.type.descriptor.sql.BooleanTypeDescriptor { 
    public static final BooleanBitTypeDescriptor INSTANCE = new BooleanBitTypeDescriptor(); 

    public BooleanBitTypeDescriptor() { 
     super(); 
    } 

    public int getSqlType() { 
     return Types.BIT; 
    } 
} 
0

dell'insetto esiste ancora in grails 2.5.4 Ottiene utenti Postgres male b/c postgres ha alcun tipo di dati bit equivalente. Ha una stringa di bit che non è equivalente per contenere valori booleani. I documenti di Grails suggeriscono di passare alla versione char (1) Y/N di boolean.

'user-type' (tipo: org.hibernate.type.YesNoType, classe: booleano)

http://grails.github.io/grails-doc/2.5.4/ref/Database%20Mapping/Usage.html

Tuttavia, Non mi piace l'idea di piegare il mio schema db per accogliere i bug in app struttura.

Quindi, probabilmente continuerò a ignorare questi changeset non necessari.

Problemi correlati