我正在阅读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.
这是否意味着不赞成使用向上/向下模式?
与“更改”方法相比,它还有其他优势吗?
答案 0 :(得分:1)
据我了解,change方法知道如何自动反转自身。 Up并非如此,因此您必须自己在down方法中指定反向功能。
自动撤消具有缺点,因为它不知道如何撤消所有可用的迁移调用。官方文档here中提供了有关此方法和自动反向方法的完整列表的来源。
为更清楚地回答您的问题-相对于“变更”而言,“上”和“下”的优势是能够很好地控制迁移的执行和还原方式。切记,这并不意味着您不能使用上/下进行所有迁移,也不表示您不赞成这样做,但是您会失去“更改”所带来的便利。摘要: