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

标签 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 = {
    }
}

数据库未使用列地址更新

最佳答案

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

String address

请注意,默认情况下将列设置为NOT NULL,因此,如果表中存在数据,则尝试添加非空列,每行上都有空数据,因此该列将无法创建。您还需要允许该列在约束块中为空
static constraints = {
  address(nullable: true)
}

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

关于grails - 如何在Grails 3.3.0中使用域类更新现有数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57025878/

相关文章:

grails - Controller 中的PageRenderer

java - 错误org.grails.orm.hibernate.cfg.HibernateMappingBuilder-ORM映射无效等

android - Realm 数据库,添加对象数组列表作为类的列

c# - 运行种子数据库

grails - 使用 Grails Shiro 插件实现 AuthorizingRealm

grails - 如何使用grails导出插件放置pdf的标题中心?

grails - grails插件问题-无法解析类

grails - 按顺序获取Grails域的持久性属性

testing - Grails 自定义 taglib 在集成测试期间无法使用自定义工件

ruby-on-rails - postgresql数据库迁移错误:PG::ConnectionBad: fe_sendauth: no password supplied