Rails迁移没有做任何事情?

时间:2018-05-01 08:14:05

标签: ruby-on-rails ruby

我创建了以下迁移:

class AddTokenToRegionTriggers < ActiveRecord::Migration[5.0]
  def change
    add_column :region_triggers, :token, :string
    add_index :region_triggers, :token, unique: true
  end
end

有一个名为region_triggers的表格。我尝试运行rake db:migrate:up VERSION=123,但它没有做任何事情。输出是:

Enabling Bootsnap
Model files unchanged.

当我运行rake db:migrate:redo VERSION=123时,它说No indexes found on region_triggers with the options provided.

如何让rails添加列和索引?

1 个答案:

答案 0 :(得分:1)

你从哪里获得版本号?您是否使用rails g migration创建了迁移文件?

如果是这样,它会创建一个迁移文件,其版本号前缀为模型名称,所以(例如)

rails g migration AddTokenToRegionTriggers 

会生成

20180501113025_add_token_to_region_triggers.rb

该初始数字字符串是版本号。要迁移到该版本,您可以执行

rake db:migrate:up VERSION=2018051113025

如果您没有以后的迁移,您可以这样做......

rake db:migrate