Rails回滚,更改类型并再次迁移

沙拉夫的

我有一个要求表;

class CreateRequests < ActiveRecord::Migration
  def change
    create_table :requests do |t|
      t.string :from
      t.string :to

      t.timestamps null: false
    end
  end
end

我想通过rake db:rollback STEP = 5销毁请求模型来回滚数据库,并使用创建请求表;

t.datetime :from
t.datetime :to

但是,我在STEP = 2上有一个迁移到请求模型的表

class AddStatusToRequest < ActiveRecord::Migration
  def change
    add_column :requests, :status, :string, :default => "Pending"
  end
end

问题是,如果我销毁了请求表并使用日期时间类型创建了新的请求表,则它会在STEP = 2之后创建,并且当我rake db:migrate跟踪时不会将“状态”列添加到请求表中。我该如何克服呢?

弗雷德·威尔莫

您可以使用以下命令创建新的迁移以更改列类型change_column

命令行: rails g migration change_request_to_from_column_types'

新迁移:

class ChangeRequestToFromColumnTypes < ActiveRecord::Migration
  def change
    change_column :requests, :from, :datetime
    change_column :requests, :to, :datetime
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章