buffalo 는 buffalo-pop을 통해 model(table)을 관리한다.
buffalo pop g m abc 를 하면 연결된 db에 abc라는 table이 생기고
migrations 폴더아래에 up, down 파일이 추가된다.
관리 편의를 위해 구조를 적용하려면 모델이름에 경로를 사용하면 된다.
buffalo pop g m abc/def 를 하면 models 폴더 아래 abc 폴더 아래에 해당 모델이 추가된다.
삭제는 반대로 하는데
생성은 buffalo pop 인데, 삭제는 하이픈이 있다. buffalo-pop
buffalo-pop destroy model 모델명
ex) buffalo-pop destroy model user 를 하면
먼저 모델을 삭제할 지 묻고, migration도 삭제할 것인지 묻는다
y 를 눌러야 삭제 됨.
buffalo-pop destroy model user
Want to remove model? (y/N)y
INFO[0003] - Deleted models/user.go
INFO[0003] - Deleted models/user_test.go
Want to remove migrations? (y/N)y
INFO[0007] - Deleted migrations/20220914044342_create_users.up.fizz
INFO[0007] - Deleted migrations/20220914044342_create_users.down.fizz
실제로 해당 폴더에 파일들이 삭제되었는지 확인한다.
폴더구조로 추가한 경우 model과 migration 이 따로 논다 ㅡㅡ
abc/def 로 생성을 한 경우 model은 동일하게
buffalo-pop d m abc/def 로 하면 abc_def로 바뀌어서 삭제 시도를 한다.
migragions에서는 끝에 s 를 붙여서 시도한다.
파일명이 다르면 삭제가 되지 않으므로 꼭 확인해야 한다.
buffalo-pop d m abc/def
Want to remove model? (y/N)y
INFO[0002] - Deleted models/abc_def.go
INFO[0002] - Deleted models/abc_def_test.go
Want to remove migrations? (y/N)y
migrations 가 제대로 지워지지 않은 경우 이름을 고려해서 다시 호출해 본다.
buffalo-pop d m abc_def
Want to remove model? (y/N)y
INFO[0003] - Deleted models/abc_def.go
INFO[0003] - Deleted models/abc_def_test.go
Want to remove migrations? (y/N)y
INFO[0005] - Deleted migrations/20220914054656_create_abc_defs.up.fizz
INFO[0005] - Deleted migrations/20220914054656_create_abc_defs.down.fizz
models/abc/def.go 가 그대로 남아있다 ㅡㅡ;
migrations에서 정상적으로 삭제 되었으면 model 폴더아래에 있는 abc 폴더의 파일을 직접 삭제한다.