2017-10-17 133 views
0

我最初在創建數據庫時運行遷移並且一切正常。然後我去手動刪除postgresql中的表。現在,當我運行rake db:migrate時,它會運行,但不會創建表。Ruby on rails遷移不起作用

+0

是的,它不會像那些已經執行的遷移一樣工作。 Rails將只執行那些以前沒有執行過的。唯一的方法是再次回滾並運行遷移。 – krishnar

回答

1

這取決於您的遷移所做的事情。根據您的定義,rake db:migrate可以創建或更改表格。要在開始時設置數據庫和表格,您可以使用rake db:schema:loadrake db:setuprake -T概述了所有可用的rake任務。

數據庫遷移存儲在表schema_migrations中,其中有一列version。只要可以在此處找到有關遷移的版本,就不會再執行遷移。

+0

與以前完全相同的遷移。它創建一個表格。然後我刪除了數據庫中的表格,我想再次創建它。 – fineboy1

+0

有一個表'schema_migrations',它可能已經包含版本。我已經相應地更新了答案。 – 0x4a6f4672

+0

謝謝。這似乎解決了這個問題。 – fineboy1