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_compressor
或register_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'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
当你删除一个列时,你不需要提到像integer
或boolean
等字段类型...只是简单
remove_column :companies, :time_limit_for_sending_report
在Gemfile中进行任何更新后,请确保运行bundle install
或update
以上是关于Rails迁移:从表中删除列的主要内容,如果未能解决你的问题,请参考以下文章
在 rails upgrade 迁移条目从模式迁移表中删除后