Rails迁移:从表中删除列

时间:2018-04-12 15:46:12

标签: ruby-on-rails database migration

我尝试使用rails migration从我的表中删除某些属性,我创建了迁移文件并编写了这段代码:

class RemoveCompanySendReportAttributes < ActiveRecord::Migration[5.1]
  def change
    remove_colmun :companies, :time_limit_for_sending_report, :integer
    remove_column :companies, :automatically_send_report, :boolean
  end
end

它不起作用,这是我的终端中的错误:

  

请使用register_mime_type注册mime类型,然后使用   register_compressorregister_transformer。   https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors   (从座位中调用   /home/sa7noun/altagem-project/web/config/initializers/haml.rb:24)   == 20180412151847 RemoveCompanySendReportAttributes:migrating ================    - remove_colmun(:companies,:time_limit_for_sending_report,:integer)rake aborted! StandardError:发生错误,此错误以及稍后发生   迁移已取消:

     

未定义的方法`remove_colmun&#39;对

     

1 个答案:

答案 0 :(得分:2)

第1部分

  

请使用register_mime_type注册mime类型,然后使用register_compressor或register_transformer。

这是sprockets问题,快速解决方法是

gem 'sprockets', '3.6.3'

但是现有的将用于生产环境。

第2部分

您撰写remove_column remove_colmun的迁移错误是错误的类型

  

未定义的方法`remove_colmun&#39;对

它将是remove_column

在删除专栏时,您不需要提及integerboolean等字段类型...只是简单地

remove_column :companies, :time_limit_for_sending_report

在Gemfile中进行任何更新后,请确保您运行bundle installupdate