加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 为什么我要恢复迁移?

发布时间:2020-12-17 03:33:51 所属栏目:百科 来源:网络整理
导读:在Rails中,默认情况下,迁移具有用于还原迁移的down方法.但是,在什么情况下我还想恢复迁移? 一些想法: 无论是在开发还是生产中,在我运行迁移之前,我总是会有一个我的数据库快照.特别是对于执行数据转换的迁移,我发现在大多数情况下恢复快照甚至比恢复迁移更
在Rails中,默认情况下,迁移具有用于还原迁移的down方法.但是,在什么情况下我还想恢复迁移?

一些想法:

无论是在开发还是生产中,在我运行迁移之前,我总是会有一个我的数据库快照.特别是对于执行数据转换的迁移,我发现在大多数情况下恢复快照甚至比恢复迁移更快. (所以我绝不会急于做!)

如果迁移失败,它将:

>在非事务性数据库上失败并出现异常,从而使数据库中断,或者
>失败并发生异常并回滚事务,因此不需要以其他方式还原.

如果所做的更改是在生产中(或在开发的后期),后来证明是一个错误,我会在新的迁移中修复我的错误.我不会还原旧的.在开发中,我只是删除迁移.

我还发现down方法引入了额外的代码,我重复自己,因此可能会引入新的bug.这违反了DRY原则.

所以我对职业选手很好奇,因为我想不到任何优点.

解决方法

在开发过程中,通过自动使用down方法,可以轻松快速地逐步“改进”迁移.例如

>创建迁移并迁移到它
>意识到你需要做出改变
>使用db:migrate with version迁移到新迁移之前的ver
>改进/修复您的迁移
>重新运行迁移任务

拍摄快照的方法很好.但是rails使用“向下”迁移技术自动神奇地包含相同的效果.适用于所有数据库,味道很棒

添加:

对于生产,我同意不应该需要向下迁移.但有时会发生错误,你需要回滚.向下迁移路径为您提供了第一个快速机会,可以在出现错误的升级过程中解决紧急情况.

– 在紧急情况下尝试向下迁移比使用检查点恢复数据库要快得多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读