레일즈 프로젝트를 진행하던 도중 scaffold 생성을 잘못해서 다 지우고 처음부터 진행하려고 하는데..!
rails destroy scaffold scaffold명
이 명령어로 scaffold 를 삭제하고 다시 만들어
rake db:migrate
를 하는 순간..!
table already exists.. 이미 테이블이 있다고 나온다..
확실히 지운 줄 알았는데...
그래서 방법을 찾아보았다!
먼저, 만들었던 scaffold를 삭제해준다
rails destroy scaffold scaffold명
scaffold와 함께 만들어졌던 모델을 삭제해준다
rails destroy model model명(scaffold명)
table을 삭제하는 명령어를 실행할 migration를 생성해준다
rails g migration migration명
저는 이름을 까먹지 않도록 모델명과 같게 해주었다.
migration안에 아래의 코드를 입력해준다
class Users < ActiveRecord::Migration[6.1]
def up
drop_table :users
end
def down
fail ActiveRecord::IrreversibleMigration
end
end
drop_table 옆에는 삭제하려는 테이블명을 적는다
rake db:migrate
를 실행시켜주면 테이블이 drop되는 걸 볼 수 있다
테이블을 삭제하기 위해 만들었던 migration 파일을 삭제해준다
rails d migration migration명
그러면 완벽하게 초기화 된 것을 볼 수 있다.