ruby-on-rails - "down"迁移何时有用?

标签 ruby-on-rails database-schema database-migration rails-migrations

简短版本:
down 迁移是怎么回事?在什么情况下您需要使用一个?

长版:

许多支持数据库模式版本(包括但不限于 Rails 的“迁移”)的框架允许开发人员指定数据升级(一个 up 操作)可以如何反转(又名 down ),甚至通过分析自动生成一个降级操作代码(如 Rails 的 change 方法)。

事实上,在我遇到的所有 Rails 迁移代码中这样做似乎非常普遍,这让我怀疑这是否被认为是最佳实践。

就我个人而言,我从来不需要降级数据库架构,而且我无法想象我想要的合理场景,无论是在开发中还是在生产中。我的经验似乎与 down 迁移的流行不一致,所以我猜我错过了一些东西......
down 有用的最常见场景是什么?

最佳答案

假设您已将新版本推送到生产并运行迁移,一段时间后您发现了一个无法立即解决的错误。由于您需要保持生产服务器运行,因此您将恢复到之前的提交。但是,这不会恢复对数据库所做的更改,这会导致错误。因此,您需要一种方法来回滚对数据库所做的更改,然后恢复到旧版本。这种情况可能不会太频繁地出现,但重要的是要有它何时出现的机制。

在开发中,您可能会运行一些迁移,然后决定要更改、添加或删除某些内容。有办法撤消它们意味着您不需要为每个小的更改都创建一个新的迁移。

关于ruby-on-rails - "down"迁移何时有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34237425/

相关文章:

jquery - 将值变量检索到jquery

database - 行建模和 EAV 之间的区别

用于刷卡式应用程序的 Mongodb 模式设计

用于基于角色的系统的 MySQL 数据库架构

ios - CoreData 所需类型 = NSManagedObject;给定类型 = __NSSingleObjectSetI

python - python 中名为 psycopg2 的游标的性能问题

javascript - Rails - 客户端验证问题

ruby-on-rails - 法拉第代理 - 连接失败 - 到达文件末尾

ruby-on-rails - 如何将 Controller 包含在 Ruby on Rails gem 中?

ruby - 执行 rake db :migrate on Heroku 时出错