我在编写第一个grails应用程序的过程中途中途。到目前为止,一切进展顺利,但我只是意识到,当我上线时,我将无法如此大地改变领域模型(Domain Model)。

该应用程序由MySql数据库支持,我目前只有一个感兴趣的对象“Person”。如果在部署后我想添加一个“组”域,以使一个人有多个组,那么我对数据库要做什么?我会丢失MySQL数据库中的任何现有行吗?

人们通常如何处理这种情况?有没有一种聪明的方法来设计域或一个简单的工具来管理MySql表中列的添加?

V1

class Person {
  String firstName;
  String lastName;
  String email;
  String phoneNumber;
}

V2
class Person {
  static hasMany = [groups:Group]
  String firstName;
  String lastName;
  String email;
  String phoneNumber;
}

亲切的问候,

加夫

最佳答案

在生产中,您需要确保Grails不会修改数据库模式。大多数人处理此问题的方法是在开发中对更新进行建模,然后创建SQL更新脚本来更新生产数据库并在部署之前应用它们。在这种情况下,grails提供的Schema Export工具会有所帮助。

还有诸如DbMigrate插件之类的工具来解决这些问题。

关于grails - Grails-上线后更新域-我会丢失数据吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2724844/

10-11 23:35
查看更多