在我看来,数据库更改的一个常见要求是添加一个不能为空的列。解决在某些情况下填充此列的问题的一种方法是在 DDL 中将其定义为“not null with default”。
Grails 似乎不直接在约束中支持“NNWD”。我测试了一个似乎可以等效的想法:
String name = default
...
name nullable:false
我想知道dbm-gorm-diff changleog-n.xml是否能够将其检测为具有默认值的空值。但它没有。那是版本 1.2.2。我看到 Liquibase 通过它的<addNotNullConstraint
.
是否有计划引入这种支持?关于我如何解决这个问题的任何建议,可能是通过使用 dbm 脚本的用户编写的脚本。
问题:
我尝试使用 1.3.2,但在运行脚本时出现 MissingMethodException。实际的错误行是:
groovy.lang.MissingMethodException:没有方法签名:静态 grails.plugin.databasemigration.ScriptUtils.executeAndWrite() 适用于参数类型:(java.lang.String, java.lang.Boolean, DbmGormDiff$_run_closure1_closure2) 值:[changelog -with-data.xml,假,DbmGormDiff$_run_closure1_closure2@2f673724]
我不明白,因为 args 似乎与插件代码中的 executeAndWrite() 方法的签名相匹配。
问候,约翰