2016-12-29 1 views
0

이미 Paperclip 첨부 파일을 소유 한 현재 모델에 새 Paperclip 첨부 파일을 추가하기 위해 새 마이그레이션을 만들었습니다. 데이터 형식이 잘못되어 롤백을 이전 할 수 없습니다.

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

는 그때 불필요한 열이 클립 (* _file_name * _content_type)에 의해 생성되지 않았다 눈치 I 실수를 실현 :

비록 오류를 만들어 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 : /와 같은 해당 열의 데이터 형식을 변경하기 위해 마이그레이션을 만들었습니까? /stackoverflow.com/questions/2799774/rails-migration-for-change-column? –

+0

따라서 추가 컬럼이 작성되지 않았다는 말은 데이터베이스에이 마이그레이션을 통해 추가 된 컬럼이 없다는 것을 의미합니까? – Deep

+0

shema 파일에 임의의 데이터 유형을 직접 추가하려고합니다. 다른 데이터 형식으로 마이그레이션해야합니까? 이 필드와 관련된 마이그레이션이 작동하지 않는 것 같습니다. – Maxence

답변

0

좋아 해결책을 찾았습니다. development.sqlite3schema.rb을 모두 죽이십시오. 마지막 마이그레이션에서 잘못된 열에 대한 참조를 삭제하십시오. Do a rails db:migrate 모든 것이 재구성 될 것입니다.

관련 문제