【问题标题】:Ruby on Rails Migrations and Moving Up and Down BasicsRuby on Rails 迁移和上下移动基础知识
【发布时间】:2013-07-06 10:22:17
【问题描述】:

我参加了几门关于 Rails 的课程,但我对迁移有一些不清楚的地方:

1.) 如果我生成一个迁移并运行它,无论我执行多少操作,rails 仍然会创建一个全新的架构版本吗?无论如何在迁移之前查看每个版本的架构?

2.) 如果我没有在迁移中定义 down 方法并且我尝试回滚,那么回滚会什么都不做吗?

3.) 我应该在运行迁移后删除它们吗?

【问题讨论】:

    标签: ruby-on-rails migration schema


    【解决方案1】:

    Migrate 会对您的架构进行增量更改。它知道(除非你把它填满)你的模式处于什么状态,并运行那些尚未运行的迁移。 例如如果您执行 drop create and migrate 然后第二次迁移,则第二次不会执行任何操作,因为它们都已完成。

    No down 确实意味着回滚将无济于事。

    您应该删除迁移的唯一情况是完全撤消更改。即您添加了一个模型,然后决定不需要它。

    任何其他方法都意味着您无法从头开始实现架构。 例如您添加模型并迁移 然后你意识到你需要一个关系并做到这一点。删除添加表的迁移,事情变得非常糟糕。

    【讨论】:

      【解决方案2】:

      如果您运行 migrate 来创建表而不定义 down 方法,则不需要在 migrate 之后删除迁移文件,如果您尝试 rake db:rollback 它将恢复您上次执行的迁移,您可以在此处查看更多信息Migration

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-21
        • 2011-02-18
        • 2015-04-09
        • 2019-12-24
        • 2011-01-14
        • 2012-11-11
        • 1970-01-01
        相关资源
        最近更新 更多