Mysql Grails DB迁移-如何将decimal DB字段更改为具有3的scale属性?
为了更改表中的十进制字段,我需要知道如何使用DB迁移代码进行此更改 目前,该字段表示为19,2,需要更改为19,3,点后有3个浮点数 我的数据库是MySqlMysql Grails DB迁移-如何将decimal DB字段更改为具有3的scale属性?,mysql,database,grails,dbmigrate,Mysql,Database,Grails,Dbmigrate,为了更改表中的十进制字段,我需要知道如何使用DB迁移代码进行此更改 目前,该字段表示为19,2,需要更改为19,3,点后有3个浮点数 我的数据库是MySql 谢谢 在LIQUIBASE的文档中,有一个名为 试试这个: databaseChangeLog { changeSet(author: 'author', id: '1234') { modifyDataType(columnName: 'column', newDataType: 'DECIMAL(19,3)')
谢谢 在LIQUIBASE的文档中,有一个名为 试试这个:
databaseChangeLog {
changeSet(author: 'author', id: '1234') {
modifyDataType(columnName: 'column', newDataType: 'DECIMAL(19,3)')
}
}
我认为这很好。使用:addNotNullConstraint-
changeSet(author: 'roeyg (generated)', id: '1409232538826-2') {
addNotNullConstraint(columnDataType: 'DECIMAL(19,3)', columnName: 'value', tableName: 'period_value')
}
很好用!但它会从可为null的'false'=>true'更改。我试图添加'nullable:false',但效果不好。引发了一个异常。如何修复它?在运行脚本之前,请始终运行dbm update sql。它显示由脚本生成的sql。您的表是否创建了默认值?请尝试addDefaultValue以设置默认值。如果发生异常,或者在这种情况下创建了错误的默认值,则运行回滚脚本。请参阅右面板回滚脚本上的dbmigration文档或Groovy更改一节。对于这种情况,是否有一些简单的解决方案?一些神奇的线路?如何以及从哪里运行dbm更新sql脚本?在您的项目中,在终端上运行dbm更新脚本