简短版本:down
迁移是怎么回事?在什么情况下您需要使用一个?
长版:
许多支持数据库模式版本(包括但不限于 Rails 的“迁移”)的框架允许开发人员指定数据升级(一个 up
操作)可以如何反转(又名 down
),甚至通过分析自动生成一个降级操作代码(如 Rails 的 change
方法)。
事实上,在我遇到的所有 Rails 迁移代码中这样做似乎非常普遍,这让我怀疑这是否被认为是最佳实践。
就我个人而言,我从来不需要降级数据库架构,而且我无法想象我想要的合理场景,无论是在开发中还是在生产中。我的经验似乎与 down
迁移的流行不一致,所以我猜我错过了一些东西......down
有用的最常见场景是什么?
最佳答案
假设您已将新版本推送到生产并运行迁移,一段时间后您发现了一个无法立即解决的错误。由于您需要保持生产服务器运行,因此您将恢复到之前的提交。但是,这不会恢复对数据库所做的更改,这会导致错误。因此,您需要一种方法来回滚对数据库所做的更改,然后恢复到旧版本。这种情况可能不会太频繁地出现,但重要的是要有它何时出现的机制。
在开发中,您可能会运行一些迁移,然后决定要更改、添加或删除某些内容。有办法撤消它们意味着您不需要为每个小的更改都创建一个新的迁移。
关于ruby-on-rails - "down"迁移何时有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34237425/