SQLITE表已损坏 - 在迁移文件中有拼写错误

时间:2015-03-14 16:00:27

标签: ruby-on-rails sqlite ruby-on-rails-4

我生成了错误的迁移,文件看起来像这样

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;

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

好像你在这里指定了错误的列类型:

add_column :mats, :default, :true

:true是无效的列类型。