使用Grails处理旧数据库时,如何避免自动架构修改?

kno*_*orv 4 grails

Grails在更改域模型时会自动修改模式(包括索引/外键更新).这通常很好,但在使用旧数据库时,我想完全禁用所有表修改.

如何指示Grails 永远不要修改表结构(包括索引和外键约束)?

这就是我目前设置映射的方式:

class ClassName {
  String string1
  String string2
  AnotherClass anotherClass

  static mapping = {
    version(false)
    table("legacy_table")
    string1(column: "some_legacy_field_1")
    string2(column: "some_legacy_field_2")
    anotherClass(column: "another_class_id", nullable: true, ignoreNotFound: true)
  }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*Dow 9

dataSource定义中/grails-app/conf/DataSource.groovy有一个dbCreate属性,它可以设置为validate检查架构领域模型相匹配,而不以任何方式改变它.

更多详细信息:http: //grails.org/doc/latest/guide/3.%20Configuration.html#3.3%20The%20DataSource

  • 谢谢!通过设置dbCreate = none来解决,因为dbCreate = validate对我正在使用的表结构有点过于严格. (3认同)
  • 或者完全删除dbCreate,不会改变任何内容. (3认同)