我生成了错误的迁移,文件看起来像这样
class AddActivexToMat < ActiveRecord::Migration
def change
add_column :mats, :is_active, :boolean
add_column :mats, :default, :true
end
端
不检查迁移文件,我运行rake db:migrate,现在我的架构读取
# Could not dump table "mats" because of following NoMethodError
#undefined method `[]' for nil:NilClass
我尝试删除列但收到以下错误
StandardError: An error has occurred, this and all later migrations canceled:
未定义的方法to_sym' for nil:NilClass/Users/jhorsch/.rvm/gems/ruby-2.0.0-p247@global/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/schema_definitions.rb:215:in
列&#39;
我不认为更改列也可以工作,我不敢放弃。我不认为我可以删除一个表并添加一个具有相同表名的新表。在这种情况下,表名是&#39; Mats&#39;
幸运的是,这张桌子上只有一个名字&#39;
任何想法如何解决这个问题?
答案 0 :(得分:0)
好像你在这里指定了错误的列类型:
add_column :mats, :default, :true
:true
是无效的列类型。