Rake 任务与简单数据库更改的迁移

Rake Task vs. Migration for simple DB changes

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

我知道迁移可以完成相同类型的任务,但是如果我想减少 运行 宁迁移这种简单的数据库更改,是 rake 任务acceptable 吗?

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

从 add/remove 列到 table 的最简单方法是迁移。迁移的一大优势是您可以根据应用程序的确切进度设置数据库。

如果你要用额外的抽取任务来完成它——而且没有理由这样做——我保证你会忘记运行这些抽取任务days/weeks如果你需要从头开始设置您的数据库。特别是如果你在添加 cols 后删除你的 rake 任务。

HTH

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

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

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