更新现有grails应用程序的策略

时间:2014-04-12 16:26:22

标签: grails

Grails应用程序将包含以下内容: 1)领域模型具有各种领域和与其他模型的关系。 2)进入引导程序的预先出现的数据(例如角色)。

V1已部署。用户创建更多数据(即数据库中的对象)。

您使用的是V2,它已经更新了域模型,还有更新的数据项(例如新角色​​)。

如何在不杀死V1数据的情况下部署V2?

引导程序是否再次运行?怎么知道什么时候运行呢?如果是这样,它将覆盖一些现有数据,以及添加新数据。在这种情况下,引导程序中的每个项目是否需要首先检查它是否已存在以避免重复?

架构定义如何更新,以及如何保存数据?

或者人们通过编写单独的SQL脚本来手动更新所有添加新静态数据和更新模式定义?

1 个答案:

答案 0 :(得分:1)

正如您对问题的评论所述,这些类型的更改最好通过使用"更新" dbCreatedatabase migration plugin中的DataSource.groovy设置。

除非您将dbCreate设置为" create-drop"你永远不会破坏你现有的数据。但是,当您更改域模型时,您可能会发现自己超出了Grails可以更新和#34;以及数据库迁移插件的用武之地。

该插件基于liquibase,将管理将更改集应用于您的数据库,确保它们只应用一次(除非您另有说明)。它是一个很棒的插件,值得阅读documentation以充分了解如何使用它。