2016-12-29 2 views
0

新しいPaperclip添付ファイルを、すでにPaperclip添付ファイルを所有している現在のモデルに追加するために、新しい移行を作成しました。 データタイプが間違っているために移行がロールバックできない

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

が、私は余分な列がペーパークリップ(* _file_name * _content_type)によって作成されなかった気づいたと私はミスを犯した実現:

ものの、エラーを作り、attachment代わりのadd_attachmentとしてデータ型を定義しました。

エラーが発生するため、ロールバックすることはできません。私は、新しい移行を作成した(誤ったデータ型を持つこの列を除去するため)と同様のエラーました:

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" 

私が試しをそれを文字列に変更して新しい「remove_column」移行を再実行しますが、同じエラーが発生します。

+0

あなたはそれを変更しようとしましたが、スキーマファイルでそれを変更してから試してみましたか、=> http:/のような1つの列のデータ型を変更するだけで移行を作成しましたか? /stackoverflow.com/questions/2799774/rails-migration-for-change-column? –

+0

これで、追加の列が作成されていないということは、この移行によって追加された列がデータベースに追加されていないことを意味しますか? – Deep

+0

シーマファイルにランダムなデータ型を直接追加しようとしています。別のデータ型に移行する必要がありますか?このフィールドに関係する移行は機能していないようです。 – Maxence

答えて

0

いいえ解決策が見つかりました。 development.sqlite3schema.rbの両方を殺す。最後の移行で誤った列への参照を削除します。 Do a rails db:migrate すべてが再構成されます。

関連する問題