Rake Task vs. Migration用于简单的DB更改

时间:2015-03-05 17:52:27

标签: ruby-on-rails ruby rake

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

我知道迁移可以完成同样类型的任务,但是如果我想减少运行这种简单数据库更改的迁移,那么rake任务是否可以接受?

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

2 个答案:

答案 0 :(得分:3)

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

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

此外,在使用迁移时,您将拥有数据库演变模式的历史记录。

答案 1 :(得分:1)

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

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

HTH