Grails 数据库迁移 - 更改域属性最大值 size/length

Grails Database Migration - change domain attribute max size/length

我有一个域模型,直到今天它还有:

title(maxSize: 150, nullable: false, blank: false)

但是现在,title 最大大小应该更改为 256。即使我更改它并 运行 dbm-gorm-diff,在变更集文件中,我也看不到与此域模型相关的任何更改。

DBM 是否涵盖此类迁移?如果是这样,为什么我看不到它?我找到了 this 但它非常无用...

谢谢!

constrait 闭包中的 maxSize 属性 - 是 grails 的验证规则。默认情况下,字符串字段在数据库中创建一个类型为:varchar(255) 的列,正如您所理解的那样,它是最大长度为 255 的字符列表(即字符串)。 如果你需要更多的字符长度,你应该将你的字段类型更改为 'longtext'(它可能更小的类型,但我通常使用它)它可以包含 2147483647 个字符。接下来你应该添加给你 changelog.groovy:

changeSet(author: "Alexandr", id: "ID") {
        modifyDataType(tableName: "YOUR_TABLE_NAME", columnName: "title", newDataType: "longtext")
    }

您只需更改 ID 和 table名称。 ID 应该是唯一的,table 名称是您实体的 table名称(不是域名)。