Rails迁移未运行以重命名表

时间:2017-09-25 09:11:10

标签: ruby-on-rails

我创建了一个迁移来更改表名,但是当我rake db:migrate时,表名没有改变,我也没有在控制台中看到任何错误

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

我在这里缺少什么?

1 个答案:

答案 0 :(得分: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(开发) 在这种情况下,您应该回滚此特定迁移或更新新迁移的时间戳。

您还需要编辑文件和关联(请参阅here