由于数据类型错误导致无法回滚迁移

时间:2016-12-29 16:08:16

标签: ruby-on-rails paperclip

我创建了一个新的迁移,以便将新的Paperclip附件添加到已拥有Paperclip附件的当前模型中。

虽然出错但将数据类型定义为attachment而不是add_attachment

class AddDetailsToProfilepics < ActiveRecord::Migration[5.0]
  def change
    add_column :profilepics, :finalimage, :attachment
  end
end

然后我注意到paperclip(* _file_name * _content_type)没有创建额外的列,并意识到我犯了一个错误。

虽然现在没有回滚是可能的,因为它会触发错误。我创建了一个新的迁移(用错误的数据类型删除此列)并得到了类似的错误:

undefined method 'to_sym' for nil:NilClass

查看shema.rb时,未输入数据类型:

        ...
        t.integer  "y"
        t.integer  "width"
        t.integer  "height"
        t.         "finalimage"
        t.index ["professionnel_id"], name: "index_profilepics_on_professionnel_id"

我尝试将其更改为字符串并重新运行新的&#34; remove_column&#34;迁移,但同样的错误。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。杀死development.sqlite3schema.rb。删除上次迁移中对错误列的引用。做一个rails db:migrate 一切都将重建。 虽然数据库是空的