【问题标题】:Grails Database Migration - change domain attribute max size/lengthGrails 数据库迁移 - 更改域属性最大大小/长度
【发布时间】:2016-04-15 17:31:38
【问题描述】:

我有一个领域模型,直到今天为止:

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

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

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

谢谢!

【问题讨论】:

    标签: grails grails-orm database-migration


    【解决方案1】:
    约束闭包中的

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

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

    您只需要更改 id 和 tableName。 id 应该是唯一的,表名是您实体的表名(不是域名)。

    【讨论】:

    • 这是正确答案。但是由于插件在创建表时尊重字段,因此会假设它还涵盖了该字段的更新 - 它没有。所以你必须手动完成......
    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 2011-11-17
    • 2022-10-20
    • 2011-11-12
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2015-05-17
    相关资源
    最近更新 更多