データベースの変更の一般的な要件のように思われるのは、null にできない列の追加です。状況によっては、この列にデータを入力する際の問題を回避する 1 つの方法は、DDL で「デフォルトでは null ではない」と定義することです。
Grails は、制約で「NNWD」を直接サポートしていないようです。同等に機能すると思われるアイデアをテストしました。
String name = default
...
name nullable:false
dbm-gorm-diff changleog-n.xmlがこれをデフォルトで null として検出できるかどうか疑問に思いました。しかし、そうではありませんでした。それはバージョン1.2.2です。Liquibase は、その を介してこれをサポートしていることがわかります<addNotNullConstraint
。
このサポートを導入する予定はありますか? おそらくdbmスクリプトを利用するユーザー作成のスクリプトを介して、これをどのように回避するかについての提案。
問題:
1.3.2 を使ってみたのですが、スクリプトを実行すると MissingMethodException が発生します。実際のエラー行は次のとおりです。
groovy.lang.MissingMethodException: メソッドのシグネチャがありません: static grails.plugin.databasemigration.ScriptUtils.executeAndWrite() は引数の型に適用できます: (java.lang.String, java.lang.Boolean, DbmGormDiff$_run_closure1_closure2) 値: [changelog -with-data.xml、false、DbmGormDiff$_run_closure1_closure2@2f673724]
引数がプラグインのコードの executeAndWrite() メソッドのシグネチャと一致しているように見えるため、これはわかりません。
よろしく、ジョン