2014-10-10 24 views
6

我正在使用postgres數據庫。 upgading到Grails的2.4.3後,我得到這個類型的數據庫變更爲所有布爾字段:不需要的數據庫changeSet在grails之後與布爾值相關2.4.3升級

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

isFramable是在域類Chapter一個boolean場。即使是dbm-gorm-diff

運行此遷移它產生以後每次我注意到,在舊版本的Grails曾經有bool而不是boolean在變更

我使用Hibernate的版本4.3.5.5

+0

我們有同樣的問題,但沒有解決方案。我們只是忽略這些條目... – 2014-10-10 18:31:29

+0

這可以幫助http://stackoverflow.com/a/14470586 – 2014-11-04 08:52:51

+0

有什麼消息嗎? – AndreyT 2015-09-04 12:48:41

回答

3

我解決方法爲:

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

錯誤仍Grails中存在2.5.4獲取 Postgres的用戶嚴重B/C postgres的沒有等價的位數據類型。它有一個不等於保持布爾值的字符串。 Grails文檔建議轉換爲char(1)布爾型的Y/N版本。

「用戶類型」(類型:org.hibernate.type.YesNoType,等級:布爾)

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

不過,我不喜歡我的彎曲DB模式,以適應中的錯誤應用的想法框架。

因此,我可能會忽略這些不必要的變更集。

相關問題