【问题标题】:Update constraints in Database - Grails 3.2.2更新数据库中的约束 - Grails 3.2.2
【发布时间】:2017-10-04 15:19:52
【问题描述】:

我有一个带有String 字段的类,现在我添加了一个新约束:

foo(maxSize: 30)

在我的dataSource 我有这个值:

dbCreate: update

当我运行应用程序时,maxSize 在我的数据库中没有改变(通过MySql Workbench 检查)。

如何更新数据库中的新约束?

【问题讨论】:

  • 我猜:底层 Hibernate(主要 JPA 提供者的典型行为)具有“更新”模式,但总是说“不在生产中使用”。通常可以添加列,但不能更改约束、添加索引等...

标签: grails constraints grails-orm


【解决方案1】:

GORM 在使用dataSource.dbCreate = update 时不会更改现有列。你应该自己做,使用alter table声明。

imo 最好的选择是使用migrations 插件;它最近出版。您可以阅读here 中的指南。插件文档可用here

我建议您阅读指南并参考上面提供的文档。

【讨论】:

    【解决方案2】:

    另一种选择是使用dbCreate: create-drop,如果负担得起...,我的意思是适合您的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多