2013-07-08 395 views
0

我把在轨道上一对夫妇课程,但一些事情我不清楚关于迁移:Ruby on Rails的迁移和移动向上和向下基础

1)如果我产生迁移并运行它,无论怎样我执行的操作很少,但是rails还是会创建一个我的模式的全新版本?无论如何在迁移回退之前查看每个版本的模式?

2.)如果我没有在迁移中定义down方法并尝试回滚,那么回滚会不做任何事情?

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

回答

0

如果你运行一个迁移来创建一个表而不需要定义一个down方法,如果你尝试了rake db,那么你不需要删除这个迁移文件:rollback它会恢复你最后一次迁移,你可以看到更多这里Migration

0

迁移对您的模式进行增量更改。它知道(除非你把它填满)你的模式所处的状态,并运行那些尚未运行的迁移。 例如如果你创建并迁移,然后再迁移,第二个不做任何事情,因为他们都已经完成了。

没有下降的确意味着回滚无能为力。

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

任何其他方法都意味着您无法从头开始实现您的模式。 例如你添加一个模型并迁移 然后你意识到你需要一个关系,并做到这一点。删除添加表的迁移,事情发生严重错误。