2013-11-21 59 views
0

我有耙遷移並生成所有表。Rails耙指定的遷移文件

現在,我要換一個表,但我不想再耙變化migrate.I只是想刪除表並執行命令:

rake db:migrate 

但是什麼都沒有發生。

所以我想知道,在我刪除表格後,當我耙動生成新表格時該怎麼辦?

回答

1

假設你要更改遷移與時間戳:201311211234,你只是想改變這個特定的遷移,而不會影響其他表然後做

rake db:migrate:down VERSION=201311211234 

然後使上遷移文件的變化

然後就去做

rake db:migrate:up VERSION=201311211234 

第二個選擇是從schema_migrations表刪除201311211234版本的數據行,然後運行rake db:migrate

1

如果你正在運行的變化,你應該使用:

rake db:rollback 
... make changes ... 
rake db:migrate 

要立即糾正它,你將需要刪除的最後一個條目在schema_migrations表(因爲你沒有運行回滾我猜) 。

1
rake db:migrate 

更新模式文件。當您編寫遷移文件時,請務必在self.down中推送代碼。所以當你運行rake db:rollback時,執行下面的命令。您可以手動更改模式文件以解決此問題。

您也可以從控制檯運行特定的遷移,但在任何情況下都應避免使用時間戳從終端運行。