gpt4 book ai didi

ruby-on-rails - 我应该如何*有意*停止迁移?

转载 作者:行者123 更新时间:2023-12-04 07:36:18 24 4
gpt4 key购买 nike

我有一个迁移要运行,但在它运行之前我想验证某些条件(即迁移调用模型上的实例方法,我想确保该方法在运行迁移之前存在)。

考虑到这一点,我找不到任何说明在验证未通过时如何停止迁移的文档。引发异常似乎最有可能是执行此操作的明智方法。我发现 ActiveRecord::Rollback 看起来是个不错的候选,因为它显式地回滚了一个事务,但它也有一旦事务回滚就不会重新引发的特性,所以我可能赢了'查看我附加到异常的任何消息。

我一直在搜索“rails cancel migration”之类的东西,但所有结果似乎都与无意中取消的迁移有关。相反,我想在某些情况下故意(并且优雅地)失败。

最佳答案

我最终做的实际上是 raise Exception,因为 ActiveRecord::Rollback 会将迁移计为已完成并且不允许在修复后重新运行错误。

关于ruby-on-rails - 我应该如何*有意*停止迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27158048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com