我创建了一个迁移来更改表名,但是当我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
我在这里缺少什么?
答案 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)