首页 > 解决方案 > 迁移变化

问题描述

add_index :tests, [:title, :level], unique: true 我如何更改titlebody保存在 schema.rb 我厌倦了手动更改它但它没有保存在 schema.rb

标签: ruby-on-rails

解决方案


您需要再次运行迁移。

您的架构版本已设置为迁移的 id。

ActiveRecord::Schema.define(:version => MIGRATION_ID) do
  # schema definition ...
end

这就是为什么即使您再次运行所有迁移也没有任何变化,因为版本告诉 Active Record 它不应该运行以前的迁移而不是其版本号。

您需要回滚之前的迁移,然后再次运行迁移。

rake db:rollback # it will rollback the last migration applied.
rake db:migrate

顺便说一句,此解决方案应仅用于开发环境。如果要更改生产数据库,则应创建另一个迁移以更改列。


推荐阅读