2013-07-08 142 views
0

我把在軌道上一對夫婦課程,但一些事情我不清楚關於遷移:Ruby on Rails的遷移和移動向上和向下基礎

1)如果我產生遷移並運行它,無論怎樣我執行的操作很少,但是rails還是會創建一個我的模式的全新版本?無論如何在遷移回退之前查看每個版本的模式?

2.)如果我沒有在遷移中定義down方法並嘗試回滾,那麼回滾會不做任何事情?

3.)我應該在運行它們之後刪除遷移嗎?

回答

0

如果你運行一個遷移來創建一個表而不需要定義一個down方法,如果你嘗試了rake db,那麼你不需要刪除這個遷移文件:rollback它會恢復你最後一次遷移,你可以看到更多這裏Migration

0

遷移對您的模式進行增量更改。它知道(除非你把它填滿)你的模式所處的狀態,並運行那些尚未運行的遷移。 例如如果你創建並遷移,然後再遷移,第二個不做任何事情,因爲他們都已經完成了。

沒有下降的確意味着回滾無能爲力。

您應該刪除遷移的唯一時間是如果您完全撤消更改。即你添加了一個模型,然後決定你不需要它。

任何其他方法都意味着您無法從頭開始實現您的模式。 例如你添加一個模型並遷移 然後你意識到你需要一個關係,並做到這一點。刪除添加表的遷移,事情發生嚴重錯誤。