【问题标题】:Rake Task vs. Migration for simple DB changes用于简单数据库更改的 Rake 任务与迁移
【发布时间】:2015-03-05 17:52:26
【问题描述】:

假设我创建了一个 rake 任务来向表中添加一列。运行该 rake 任务后,我可以删除 rake 文件同时保留对数据库的更改吗?

我了解迁移可以完成相同类型的任务,但如果我想减少针对此类简单数据库更改的运行迁移,是否可以接受 rake 任务?

抱歉,如果这是一个菜鸟问题,我做了一些搜索,但找不到合适的答案。

【问题讨论】:

    标签: ruby-on-rails ruby rake


    【解决方案1】:

    您应该明确地使用迁移。如果您创建 rake 任务然后将其删除,则更改将仅应用于您的数据库的此实例(可以是开发数据库)。

    当您将应用程序部署到生产环境,甚至运行规范时,您必须再次手动添加新列以更新数据库架构。

    此外,在使用迁移时,随着时间的推移,您将拥有数据库演化架构的历史记录。

    【讨论】:

      【解决方案2】:

      向表添加/删除列的最简单方法是迁移。迁移的一大优势是您可以根据应用程序的确切进度设置数据库。

      如果您要使用额外的 rake 任务来执行此操作 - 并且没有理由这样做 - 我保证如果您需要从头开始设置数据库,您将在几天/几周内忘记运行这些 rake 任务.特别是如果您在添加列后删除您的 rake 任务。

      HTH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-18
        • 2011-12-01
        • 1970-01-01
        • 2017-05-26
        • 2011-02-07
        • 2021-08-28
        • 1970-01-01
        相关资源
        最近更新 更多