ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Rails devise User Error해결 (No such table)
    카테고리 없음 2020. 7. 27. 17:42
    728x90
    반응형

    문제점

    rails를 다루던 도중 gem 파일 중 하나인 devise를 통해서 User table을 만들려고 하다가 무슨 문제인지는 모르겠으나 (뭐,, no such table 하는 것 보니 user라고 하는 table이 안 만들어진 것 같다.) 어쨌든 나와 같은 문제를 직면한 사람들을 위해서 간단한 해결 방법을 알려주려고 한다. (rake db:migrate, rails db:migrate 에러, 오류)

     

    에러 코드

    이런 문제는 종종 rake db:migrate 명령에서 문제가 생겼다. 이를 해결하기 위해서 Stack Overflow에서 좋은 방법을 찾아내었다.

     

    해결방법

    The way I solved this issue

    1. remove "devise_for :users" in routes.db
    2. run the command "rails destroy scaffold User"
    3. remove add_devise_to_users file in db/migrate
    4. re-run "rails generate devise User" to create a brand new devise_create_users file in db/migrate
    5. re-run "rake db:migrate"

    everything is working fine now. by melc. Thanks.

     

    1. 우선 routes.rb파일에 가보면 devise_for :user가 있을 텐데 이를 없애준다.

    2. $rails destroy scaffold User 명령으로 User와 관련된 파일을 전부 삭제시킨다. 

    여기서 나의 문제점을 어느 정도 발견한 것 같은 데, 기존에 User라는 모델을 만든 적이 있었다. 이를 완전히 없애지 않아, devise User를 추가하는 상황에서 충돌이 일어난 것 같다. 그래서 Scaffold를 전부 삭제 시키니 User 관련 파일들이 전부 사라졌다. 

    내가 명령어로 삭제시킨 파일들.

    3. db/migrate폴더에 숫자_add_devise_to_users.rb을 삭제시킨다.

    4. 다시 $rails g devise User 로 새로운 User 파일을 생성한다.

    5. $rake db:migrate 명령을 치면 잘 작동하는 것을 알 수 있다!

    반응형
Designed by Tistory.