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)。我很欣赏这种困境中的任何帮助。谢谢!
答案 0 :(得分:2)
虽然db-migration可以检测域中的更改,但可以生成所需的更改日志以更新数据库架构。始终找到正确的更改并不够智能。特别是在重命名表/列或更改列的数据类型时。在这种情况下,您需要进行manula迁移。
使用db-migration制作手动更改日志以更新架构:
databaseChangeLog = {
changeSet(author: "sandeep (manual)", id: "20150901124635-01") {
modifyDataType(columnName: "amount", newDataType: "decimal(19,4)", tableName: "donation")
}
}
总是在生成更改日志后,验证它是否包含正确的更改。