Rails迁移:从表中删除列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails迁移:从表中删除列相关的知识,希望对你有一定的参考价值。

我正在尝试使用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_transformerhttps://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'for

答案

第1部分

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

这是一个sprockets问题,快速解决方案是

gem 'sprockets', '3.6.3'

但现有的将在生产环境中工作。

第2部分

remove_column的迁移错误你写了remove_colmun这是错误的类型,这就是为什么

未定义的方法`remove_colmun'for

这将是remove_column

当你删除一个列时,你不需要提到像integerboolean等字段类型...只是简单

remove_column :companies, :time_limit_for_sending_report

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

以上是关于Rails迁移:从表中删除列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Rails 迁移删除列

在 rails upgrade 迁移条目从模式迁移表中删除后

Rails 5:为啥即使我删除了迁移文件,rails 也会向 schema.rb 添加列

如何从表中删除分区?

Rails:为循环的每次迭代从表中获取数据

在 Rails 5 中添加引用列迁移