【问题标题】:Updating domain class in grails更新 grails 中的域类
【发布时间】:2014-08-08 19:34:56
【问题描述】:

我想向域类添加新字段,以便它更新生成的表的属性集。我有一个这样的域类,,

Class Book {
String name
  static constraints = {
   name nullable:false
  }

 String toString() {
        return name
 }
}

生成的 GORM 包括名称以及 id 和版本。现在我想将 ISBN 添加到 Book 域类,如下所示

 Class Book {
    String name
    String ISBN
      static constraints = {
       name nullable:false
       ISBN nullable:true
      }

     String toString() {
            return name
     }
    }

我不想在DataSource.groovy 中使用create-drop,因为它会删除我以前的所有数据。我的DataSource.groovy 看起来像这样,,

 dataSource {
         dbCreate = "update"
         url = "jdbc:jtds:sqlserver://localhost:1433/databaseName"
         username = "username"
         password = "password"
  }

我希望 GORM 将 ISBN 字段添加到预订表。但它没有发生。我哪里错了?

我使用的是 sql server 2008 和 grails 2.1.1 版

【问题讨论】:

    标签: sql-server grails grails-orm


    【解决方案1】:
    dataSource {
         dbCreate = "update"
    }
    

    应该可以解决问题。它在不删除表的情况下更新您的数据库

    【讨论】:

    • 是否为每个环境定义了该字段?还要检查启动日志,如果架构更改失败,应该会有一些警告
    【解决方案2】:

    您将需要在 sql server 中手动创建此字段,因为它的所有工具在 sqlserver 中是一项简单的任务,您应该查看grails database migration plugin 文档。它应该已经安装在你的 grails 版本中

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多