代码之家  ›  专栏  ›  技术社区  ›  Brad Rhoads

最佳实践:SQL脚本或信任GORM

  •  4
  • Brad Rhoads  · 技术社区  · 16 年前

    我一直在编写所有数据库更改的脚本。但是我想知道我是否真的需要在Grails应用程序中这样做,因为Gorm会自动进行更改。

    那么,在Grails应用程序中管理数据库更改的最佳实践是什么?

    2 回复  |  直到 16 年前
        1
  •  8
  •   Colin Harrington    16 年前

    这是我在几个大型Grails项目(和一些较小的项目)中使用的模式:

    1. 我们相信戈姆 _ 发展阶段 (生产前/无数据)
    2. 就在释放到 生产环境开始使用 类工具 Autobase , Liquibase , Database Migration Tasks (类似于ror的rake),或者另一个模式版本控制实用程序。
    3. 维护所有数据库更改 通过自动化工具 时尚。
    4. 通过编写测试用例和数据完整性的测试来测试迁移,使其达到您可以在生产数据上运行的水平。

    我不会在生产中使用Straight Gorm,除非它是一个小项目,可以处理一些可能的减速和手动干预。

    一旦您开始管理多个环境(本地开发、QA/UAT、分段、生产),您会很高兴花时间来管理您的数据库更改。

    Liquibase和Autobase都为编写许多常见重构提供了一些很好的工具,但是如果需要,您可以随时下载到原始SQL中。

        2
  •  2
  •   gareth_bowles    16 年前

    GORM不会自动处理所有架构更改;例如,如果从某个域对象中删除一个字段,则GORM不会删除相应的数据库列。

    有几个Grails插件可以管理数据库迁移-请参见 Autobase 和 Liquibase .我想说,使用更符合您需求的任何一种方法都是最佳实践;这里有一个好方法 blog post 这就解释了两个插件都有一些问题。

    推荐文章