保持从Grails域到数据库的列顺序

时间:2012-08-16 17:59:25

标签: grails gorm

当Grails从域对象创建表时,是否可以指定列顺序?我希望它保留域中指定的列顺序。相反,它似乎主要是按字母顺序排列的。我在documentation找不到任何内容。我发现this article详细说明了约束,但似乎没有解决数据库列的问题。

示例:

class Foo {
    Long id
    String zee
    Integer baz
    Integer bar
}

我希望数据库列按以下顺序排序:

id | zee | baz | bar

相反,我得到更接近的东西:

id | bar | baz | zee

2 个答案:

答案 0 :(得分:2)

您始终可以在Grails之外创建数据库,并按照您希望的顺序放置列,Grails将乐意使用您提供的模式(假设只有列排序与默认情况下创建的列不同)

正如@Burt所指出的,更好的选择是使用database migration插件来创建(和管理)数据库。它允许您以与数据库无关的方式对数据库进行细粒度控制,并且还具有大量优势,可以使您的数据库架构和架构更改与代码一起进行版本化,对于升级和回滚

答案 1 :(得分:1)

这是我所知道的唯一方法。使用静态约束并将其与订单一起编写

class Foo {
    Long id
    String zee
    Integer baz
    Integer bar
}

static constraints = {
    id()
    zee()
    baz()
    bar()
}