2017-09-25 86 views
0

我創建了一個遷移到更改表名稱,但是當我做rake db:migrate表的名稱不會改變,我看不出有任何錯誤控制檯以及Rails的遷移沒有運行到重命名錶

class RenameTemplatesTableToUserTemplates < ActiveRecord::Migration[5.1] 
    def up 
     rename_table :templates, :user_templates 
    end 

    def down 
     rename_table :job_templates, :templates 
    end 
end 

我甚至嘗試以下

class RenameTemplatesTableToUserTemplates < ActiveRecord::Migration[5.1] 
    def self.up 
     rename_table :templates, :user_templates 
    end 

    def self.down 
     rename_table :job_templates, :templates 
    end 
end 

而且我也試過

class RenameTemplatesTableToUserTemplates < ActiveRecord::Migration[5.1] 
    def change 
     rename_table :templates, :user_templates 
    end 
end 

我在想着什麼g在這裏?

回答

0

如果遷移運行不輸出的東西:

== 20170925112749 RenameTableTemplatesUserTemplates: migrating ========================= -- rename_table(:templates, :user_templates) -> 0.1690s == 20170925112749 RenameTableTemplatesUserTemplates: migrated (0.1691s) ================

並記錄沒有錯誤,這可能意味着以相同的時間戳記遷移已經運行。 您可以使用 RAILS_ENV=development bundle exec rake db:migrate:status(dev) 進行檢查。在這種情況下,您應該回滾此特定遷移或更新新遷移中的時間戳。

此外,您還需要編輯文件和關聯(請參閱here