gpt4 book ai didi

activerecord - Grails中的数据库迁移

转载 作者:行者123 更新时间:2023-12-02 14:05:06 24 4
gpt4 key购买 nike

假设我在grails应用程序中有一个包含3个表的数据库:
用户
Activity
友人

用户表表与 Activity 表和 friend 表具有一对多关系,因此在用户表中,我具有:

static hasMany = [activies: Activity, friends: Friend]

在“ friend 和 Activity ”中,我有:
static belongsTo User.

部署了应用程序,可以说成千上万的客户已经注册。现在,在数据库中进行了更改:删除了表 Activity 。在用户表的许多侧面创建一个表日记。 User表中添加了新列,并且此列不能为null。 Friend表中的旧列将被删除,该旧列也被定义为非null。

因此,在上述情况下,假设使用MySQL,需要做些什么来进行上述更改而又不删除现有客户数据并将新表安全地添加到现有客户中?

Ruby on Rails随附ActiveRecord用于数据库迁移。 Grails是否开箱即用?

当前正在开发中,当我在向表添加新的非null列后运行grails应用程序时,除非在运行grails应用程序之前删除数据库中的该表(如果不存在该表将重新创建该表),否则我将获得column不能为null的异常。显然,一旦部署了应用程序,我将无权删除表。

最佳答案

不幸的是,当前版本的Grails没有数据库迁移。但是,有一个plugin for Liquibase使迁移成为可能。

next version of Grails(1.4,计划于2011年第一季度发布)将包含一个内置的迁移工具,我非常期待它。

注意:我还没有使用Liquibase插件,所以我没有任何亲身经历。但是,我已经看到许多博客文章描述了它的用法,如果那时还没有发布1.4,我可能会在下一个Grails项目中使用它。

关于activerecord - Grails中的数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4368185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com