Rails迁移:“向上”和“向下”与“更改”相比有什么优势?

时间:2020-08-27 11:41:32

标签: ruby-on-rails migration

我正在阅读https://edgeguides.rubyonrails.org/active_record_migrations.html,并问自己在迁移文件中使用“上”和“下”方法比通过“更改”方法进行迁移有什么好处。

我可以想象通过“向下”方法以这种方式进行任意迁移就可以回滚。另一方面,即使您使用“向下”方法,仍然有一些其他依赖于迁移的迁移无法处理。

那么,使用“ up”和“ down”方法而不是“ change”方法并不能使您回滚任意迁移文件是正确的吗?

第二:铁轨指南谈到

you can also use the old style of migration using up and down methods instead of the change method.

这是否意味着不赞成使用向上/向下模式?

与“更改”方法相比,它还有其他优势吗?

1 个答案:

答案 0 :(得分:1)

据我了解,change方法知道如何自动反转自身。 Up并非如此,因此您必须自己在down方法中指定反向功能。

自动撤消具有缺点,因为它不知道如何撤消所有可用的迁移调用。官方文档here中提供了有关此方法和自动反向方法的完整列表的来源。

为更清楚地回答您的问题-相对于“变更”而言,“上”和“下”的优势是能够很好地控制迁移的执行和还原方式。切记,这并不意味着您不能使用上/下进行所有迁移,也不表示您不赞成这样做,但是您会失去“更改”所带来的便利。摘要:

  • 更改-适用于大多数迁移
  • 变更+可逆-对于“变更”方法不支持的某些复杂性”
  • 上/下-用于精细控制。非常侄女,自定义或复杂的迁移。
相关问题