如何在Grails 3.3.0中使用域类更新现有数据库表?

时间:2019-07-14 08:50:59

标签: grails database-migration grails-plugin grails-3.3.0

我想使用域类在现有表中添加新列,但这没有发生。如果我在application.yml文件中使用create-drop,那么它可以工作,但同时丢失了数据。通过更新grails 3.3.0和SQL Server 2012中的域类属性,我需要保留数据以及添加新列。

打包com.alumni

class Student
{
    String studentId
    String studentName
    String age

    static constraints = {
    }
}

数据库未使用列地址更新

1 个答案:

答案 0 :(得分:0)

尚不清楚您的代码段,但听起来您正在尝试添加

String address

请注意,默认情况下将列设置为NOT NULL,因此,如果表中存在数据,则它会尝试添加一个非空列,每行上都有空数据,因此该列将无法创建。您还需要允许该列在constraints块中为空

static constraints = {
  address(nullable: true)
}

如果添加了该列,则该列应该会成功创建。