gpt4 book ai didi

grails - 为什么在域中更改映射属性不会生成新的变更日志行?

转载 作者:行者123 更新时间:2023-12-02 15:05:41 24 4
gpt4 key购买 nike

class Donation {

BigDecimal amount

static constraints = {
amount min: BigDecimal.ZERO
}

static mapping = {
}

}

添加后,域如下所示:
class Donation {

BigDecimal amount

static constraints = {
amount min: BigDecimal.ZERO
}

static mapping = {
amount scale: 4
}

}

进行更改后,我在grails控制台中运行了dbm-gorm-diff,但未打印其他更改日志行。我想知道是否进行映射更改不会产生新的更改日志行。但是查看mysql数据库中“金额”的数据类型,它显示了十进制(19,2)。我认为制作小数位数4会将数据类型更改为十进制(19,4)。感谢您在此困境中的帮助。谢谢!

最佳答案

虽然db-migration可以检测域中的更改,并且可以生成所需的更改日志以更新数据库架构。始终无法找到正确的更改是不够聪明的。特别是在重命名表/列或更改列的数据类型时。在这种情况下,您需要进行Manula迁移。

进行手动更改日志以使用db-migration更新架构:

databaseChangeLog = {

changeSet(author: "sandeep (manual)", id: "20150901124635-01") {
modifyDataType(columnName: "amount", newDataType: "decimal(19,4)", tableName: "donation")
}
}

因此,总是在生成变更日志后,验证其是否包含正确的变更。

关于grails - 为什么在域中更改映射属性不会生成新的变更日志行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32308171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com