【发布时间】:2015-03-05 17:52:26
【问题描述】:
假设我创建了一个 rake 任务来向表中添加一列。运行该 rake 任务后,我可以删除 rake 文件同时保留对数据库的更改吗?
我了解迁移可以完成相同类型的任务,但如果我想减少针对此类简单数据库更改的运行迁移,是否可以接受 rake 任务?
抱歉,如果这是一个菜鸟问题,我做了一些搜索,但找不到合适的答案。
【问题讨论】:
标签: ruby-on-rails ruby rake
假设我创建了一个 rake 任务来向表中添加一列。运行该 rake 任务后,我可以删除 rake 文件同时保留对数据库的更改吗?
我了解迁移可以完成相同类型的任务,但如果我想减少针对此类简单数据库更改的运行迁移,是否可以接受 rake 任务?
抱歉,如果这是一个菜鸟问题,我做了一些搜索,但找不到合适的答案。
【问题讨论】:
标签: ruby-on-rails ruby rake
您应该明确地使用迁移。如果您创建 rake 任务然后将其删除,则更改将仅应用于您的数据库的此实例(可以是开发数据库)。
当您将应用程序部署到生产环境,甚至运行规范时,您必须再次手动添加新列以更新数据库架构。
此外,在使用迁移时,随着时间的推移,您将拥有数据库演化架构的历史记录。
【讨论】:
向表添加/删除列的最简单方法是迁移。迁移的一大优势是您可以根据应用程序的确切进度设置数据库。
如果您要使用额外的 rake 任务来执行此操作 - 并且没有理由这样做 - 我保证如果您需要从头开始设置数据库,您将在几天/几周内忘记运行这些 rake 任务.特别是如果您在添加列后删除您的 rake 任务。
HTH
【讨论】: